usar sintaxis one funciones funcion flecha example cuando anonimas javascript angularjs ecmascript-6 angularjs-injector arrow-functions

javascript - sintaxis - ¿Son incompatibles las funciones de flecha ES6 con Angular?



map javascript (2)

Aquí hay una función normal de ES5 en mi código angular que funciona:

app.run(function($templateCache){ $templateCache.put(''/some'',''thing'') });

Quería convertirlo a la función de flecha ES6

app.run($templateCache => $templateCache.put(''/some'',''thing''));

pero da el error

Uncaught Error: [$injector:unpr] Unknown provider: ''/some''Provider <- ''/some'' http://errors.angularjs.org/1.4.6/$injector/unpr?p0=''%2Fsome''Provider%20%3C-%20''%2Fsome'' REGEX_STRING_REGEXP @ angular.js:68 (anonymous function) @ angular.js:4287 getService @ angular.js:4435 (anonymous function) @ angular.js:4292 getService @ angular.js:4435 invoke @ angular.js:4467 (anonymous function) @ angular.js:4297 forEach @ angular.js:336 createInjector @ angular.js:4297 doBootstrap @ angular.js:1657 bootstrap @ angular.js:1678 angularInit @ angular.js:1572 (anonymous function) @ angular.js:28821 trigger @ angular.js:3022 eventHandler @ angular.js:3296

¿Son incompatibles las funciones de flecha ES6 con Angular?

EDITAR: Pensé que quizás Angular no puede inferir el nombre $templateCache y por lo tanto no puede inyectarlo, pero luego lo registré en la consola y lo muestra correctamente:

app.run($templateCache=>console.log($templateCache)); // => // Object {} // destroy: function() // get: function(key) // info: function() // put: function(key, value) // remove: function(key) // removeAll: function() // __proto__: Object



Probé otra variación que funcionó: (x)=>… (en lugar de x=>… )

app.run(($templateCache) => $templateCache.put(''/some'',''thing''));

Supongo que necesita paréntesis por alguna razón