Не удалось создать экземпляр модуля [$ injector: unpr] Неизвестный поставщик: $ routeProvider

212

Я получил эту ошибку при обновлении с AngularJS 1.0.7 до 1.2.0rc1.

Теги:
routes

3 ответа

382
Лучший ответ

Модуль ngRoute больше не является частью основного файла angular.js. Если вы продолжаете использовать $routeProvider, теперь вам нужно включить angular-route.js в свой HTML:

<script src="angular.js">
<script src="angular-route.js">

Справочник по API

Вы также должны добавить ngRoute в качестве зависимости для своего приложения:

var app = angular.module('MyApp', ['ngRoute', ...]);

Если вместо этого вы планируете использовать angular-ui-router или тому подобное, просто удалите зависимость $routeProvider от вашего модуля .config() и замените его соответствующим поставщиком выбора (например, $stateProvider). Затем вы использовали бы зависимость ui.router:

var app = angular.module('MyApp', ['ui.router', ...]);
  • 2
    Похоже, проект ui-router может быть более гибкой альтернативой, если вы начинаете с нуля ( github.com/angular-ui/ui-router )
  • 0
    Работает, спасибо :)
Показать ещё 7 комментариев
37

добавление в ответ scotty:

Вариант 1: Либо включите это в свой JS файл:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

Вариант 2: или просто используйте URL-адрес для загрузки 'angular-route.min.js' на ваш локальный.

а затем (любой вариант, который вы выберете) добавьте эту "ngRoute" в качестве зависимости.

пояснил: var app = angular.module('myapp', ['ngRoute']);

Ура!!!

  • 5
    Извините, но я должен признать, что это кажется очень похожим на уже предоставленный ответ ??
  • 2
    ... в других местах я обнаружил, что люди не могут найти ссылку / URL-адрес для загрузки или обратиться к «angular-route.min.js». Это то, что я дал в ответе, и да, я согласен с зависимостью «ngRoute», о которой вы говорили, поэтому я добавил это и в свой ответ.
Показать ещё 2 комментария
3

В моем случае это было связано с тем, что файл был изменен с неправильной областью. Используйте Array!

app.controller('StoreController', ['$http', function($http) {
    ...
}]);

Синтаксис кофе:

app.controller 'StoreController', Array '$http', ($http) ->
  ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню