Hier ist eine normale ES5-Funktion in meinem Angular-Code, der funktioniert:Sind ES6-Pfeilfunktionen mit Angular nicht kompatibel?
app.run(function($templateCache){ $templateCache.put('/some','thing') });
ich es ES6 Pfeil Funktion
app.run($templateCache => $templateCache.put('/some','thing'));
aber es gibt den Fehler
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
Sind umwandeln wollte ES6 Pfeilfunktionen inkompatibel mit Angular?
EDIT: Ich dachte, vielleicht Angular nicht in der Lage ist, den Namen $templateCache
und so nicht in der Lage zu schließen, um es zu injizieren, aber es dann richtig Ich loggte sie zu trösten und es zeigt:
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
Sie sollten nicht auf den Namen der Funktion der Parameter verlassen, da braucht, wird es Hör auf zu arbeiten, sobald du deinen Code verkleinert hast. Verwenden Sie etwas wie [ng-annotieren] (https://github.com/olov/ng-annotate). –
Der einzige Unterschied scheint zu sein, dass Ihre Funktion etwas zurückgibt. Und natürlich die Syntax. – Bergi