Używam Angulara 1.3.15, również wypróbowałem 1.2.28, wraz z kątowym bootstrapem. Ostatniej nocy, po aktualizacji Chrome v42.0.2311.90, nagle zaczął widząc ton kątowych błędów itkn:Błąd kątowy itkn spowodowany przez dyrektywy zdefiniowane za pomocą funkcji poza tablicą
Error: [$injector:itkn] Incorrect injection token! Expected service name as string, got function()
http://errors.angularjs.org/1.3.15/$injector/itkn?p0=function%20()
at REGEX_STRING_REGEXP (angular.min.js?bust=undefined:63)
at Object.invoke (angular.min.js?bust=undefined:4189)
at angular.min.js?bust=undefined:6525
at forEach (angular.min.js?bust=undefined:323)
at Object.<anonymous> (angular.min.js?bust=undefined:6523)
at Object.invoke (angular.min.js?bust=undefined:4204)
at Object.enforcedReturnValue [as $get] (angular.min.js?bust=undefined:4056)
at Object.invoke (angular.min.js?bust=undefined:4204)
at angular.min.js?bust=undefined:4021
at Object.getService [as get] (angular.min.js?bust=undefined:4162)
To nie dzieje się przed aktualizacją Chrome, ale myślę, że nie można powiedzieć, że na pewno związane .
Po wywiercenie poprzez, Znalazłem, że wszelkie dyrektywy zdefiniowane następująco:
.directive('modalTransclude', function() {
return {
// directive code
};
})
Spowoduje to itkn
błąd. Konsumowałem. key
w iteratorze $inject
w kanciastym i zwraca on funkcję samej dyrektywy, a nie tylko takie łańcuchy, jak to było wyraźnie zamierzone.
Odkryłam, że owijanie funkcję w tablicy, nawet bez strun określających zastrzyki, to rozwiązuje problem:
.directive('modalTransclude', [function() {
return {
// directive code
};
}])
Jednak ten błąd nie dzieje się na miejscu kątowej bootstrap i Próbowałem tego w obu wersjach kątowych 1.3 i 1.2.
Będę nadal poszukiwał przyczyn, które są unikalne dla mojej aplikacji, ale czy ktoś ma pojęcie, co to powoduje?
samo dzieje się dla mnie w Chrome, chociaż tylko dla mojej bootstra modemy p. Właśnie testowałem na Firefoksie i wygląda na to, że tam pracuję. – alsco77
Mogę potwierdzić, że ten problem z dyrektywą dotyczy tylko moich kątowych rzeczy związanych z bootstrapem. Wszelkie własne dyrektywy, które mam sam, działają bez zarzutu, bez względu na to, czy mają nawiasy klamrowe czy nie. – helion3
Czy masz zainstalowany http://ng-inspector.org/ w swoim chrome? Dla mnie, jeśli wyłączysz inspektora ng, wszystko wróci do normalnego trybu. Nie jestem pewien, co jest tego przyczyną, nie mam czasu, aby się w to zagłębić.Takie zachowanie pojawiło się również niedawno dla mnie. –