Kiedy używasz kątowego 1.2 zamiast 1.07, następujący fragment kodu nie jest już ważny, dlaczego?
'use strict';
var app = angular.module('myapp', []);
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when('/', {
templateUrl: 'part.html',
controller: 'MyCtrl'
}).
otherwise({
redirectTo: '/'
});
}
]);
problem dotyczy części konfiguracji wtryskiwacza (app.config):
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252)
Jeśli dobrze pamiętam, ten problem zaczął się od kątowego 1.1.6.
javascript
angularjs
obuwia
źródło
źródło
"Error: [$injector:nomod] Module 'ngRoute' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument."
mój błąd zniknął, dodając na końcu to „()”
źródło
Jeszcze jedną rzecz, którą należy dodać do listy, ponieważ jest to pierwszy wynik wyszukiwania w Google „Błąd: [$ injector: modulerr] angular”:
Jeśli występuje rozbieżność między nazwą aplikacji w „indeksie” HTML a główną definicją aplikacji javascript, może to również spowodować wygenerowanie tego błędu.
Na przykład, jeśli Twój HTML wygląda tak:
Twój JavaScript wygląda tak (tzn. Ma literówkę w nazwie aplikacji - myWebCite zamiast myWebSite):
wygenerowany zostanie również błąd „Błąd: [$ injector: modulerr] kątowy”.
źródło
Błąd noob może zapominać o dołączeniu modułu js
pliki w pliku index.html w ogóle
źródło
Dla tych, którzy używają frameworków, które kompresują, pakują i minimalizują pliki, upewnij się, że wyraźnie zdefiniowałeś każdą zależność, ponieważ te frameworki mają tendencję do zmiany nazw zmiennych. Zdarzyło mi się to podczas używania ASP.NET
BundleConfig.cs
do łączenia moich skryptów aplikacji.Przed
Po
Przeczytaj tutaj więcej o Adnotacjach zależności kątowej.
źródło
Jeśli masz ten błąd w konsoli
([$injector:nomod], MINERR_ASSET:22)
, upewnij się, że nie dołączasz kodu aplikacji przed załadowaniemAngularJS
Robiłem to i kiedy naprawiłem zamówienie, błąd zniknął.
źródło
Właśnie wystąpił ten sam błąd, w moim przypadku był on spowodowany
angular.module
brakiem drugiego parametru - mam nadzieję, że może to pomóc komuś z tym samym problemem.angular.module('MyApp');
angular.module('MyApp', []);
źródło
źródło
Miałem ten sam problem i wypróbowałem wszystkie możliwe rozwiązania. Ale w końcu dowiedziałem się z dokumentacji, że
ngRoute
moduł jest teraz oddzielony. Spójrz na ten linkRozwiązanie: Dodaj skrypt cdn angular-route.js po skrypcie angular.min.js
źródło
Innym wyzwalaczem tego błędu jest pozostawienie „.” przed twoją „inną” lub inną trasą w definicji trasy:
Jeszcze raz zawstydzony kropką. Uwielbiam JS!
źródło
Oprócz poniższej odpowiedzi, jeśli masz ten błąd w konsoli (
[$injector:nomod]
,MINERR_ASSET:22
), ale wszystko wydaje się działać dobrze, upewnij się, że nie masz duplikatów zawartych w pliku index.html.Ponieważ ten błąd można również zgłosić, jeśli masz zduplikowane dołączenia plików, które używają tego modułu i są uwzględnione przed plikiem z rzeczywistą deklaracją modułu.
źródło
Jeśli przejdziesz przez oficjalny samouczek angularjs https://docs.angularjs.org/tutorial/step_07
Należy również pamiętać, że z ngRoute api https://docs.angularjs.org/api/ngRoute
źródło
John Papa przedstawił mój problem na temat tego dość niejasnego komentarza: czasami, gdy pojawia się ten błąd, oznacza to, że brakuje pliku. Innym razem oznacza to, że moduł został zdefiniowany po użyciu. Jednym ze sposobów rozwiązania tego problemu jest nazywanie plików modułów * .module.js i załadowanie ich w pierwszej kolejności.
źródło
Mój problem był w pliku config.xml. Wymiana pieniędzy:
do
naprawione.
źródło
Jest to błąd wtryskiwacza. Być może korzystasz z wielu plików JavaScript, więc wtryskiwacz może nie być dostępny.
Niektóre są tutaj:
Sprawdź wtryskiwacz, który musisz włożyć do swojego
app.js
źródło
Czasami widziałem ten błąd podczas przełączania między projektami i uruchamiania projektów na tym samym porcie, jeden po drugim. W takim przypadku goto chrom Developer Tools> Sieć i spróbować sprawdzić rzeczywisty plik napisany js za:
if the file match with the workspce
. Aby rozwiązać ten problem, wybierzDisable Cache
w sieci.źródło
Po wielu miesiącach wróciłem do opracowania aplikacji AngularJS ( 1.6.4 ), dla której wybrałem Chrome (PC) i Safari (MAC) do testowania podczas programowania. Ten kod przedstawiał ten błąd: $ injector: modulerr Error Module w IE 11.0.9600 (Windows 7, 32-bit).
Po zbadaniu okazało się, że błąd był spowodowany foreach pętli używany, tylko wymienić wszystkich foreach pętli z normalną do pętli na rzeczy do pracy jak jest ...
To był w zasadzie problem IE11 ( tutaj odpowiedziano ), a nie problem AngularJS, ale chcę umieścić tę odpowiedź tutaj, ponieważ zgłoszony wyjątek był wyjątkiem AngularJS. Mam nadzieję, że to pomoże niektórym z nas.
podobnie. nie używaj funkcji lambda ... wystarczy zastąpić () => {...} dobrą funkcją ol '() {...}
źródło
Miałem ten problem i po sprawdzeniu mojego kodu linia po linii zobaczyłem to
właśnie zmieniłem to na
i zadziałało. więc sprawdź swoje tagi.
źródło