Ecco una funzione normale ES5 nel mio codice angolare che funziona:Le funzioni freccia ES6 sono incompatibili con Angolare?
app.run(function($templateCache){ $templateCache.put('/some','thing') });
ho voluto convertirlo in ES6 funzione freccia
app.run($templateCache => $templateCache.put('/some','thing'));
ma dà l'errore
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
Are Le funzioni freccia ES6 non sono compatibili con Angular?
EDIT: Ho pensato che forse angolare non è in grado di dedurre il nome $templateCache
e così in grado di iniettare, ma poi mi sono collegato a consolare e tuttavia esse indicano correttamente:
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
Si consiglia di non fare affidamento sui nomi dei parametri della funzione, dal momento che smetti di funzionare nel momento in cui riduci il codice. Usa qualcosa come [ng-annotate] (https://github.com/olov/ng-annotate). –
L'unica differenza sembra essere che la tua funzione restituisce qualcosa. E la sintassi, naturalmente. – Bergi