Не вдалося встановити модуль [$ injector: unpr] Невідомий постачальник: $ routeProvider


Відповіді:


404

Модуль 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 )
gatoatigrado

2
@gatoatigrado - я щойно зрозумів, скільки років ui.stateбув синтаксисом, коли я оновив додаток з angular-ui-router v0.0.1 до v0.2.0 , а значить, зараз він використовує ui.routerім'я. Вибачте за будь-яку причину плутанини.
Scotty.NET

3
Де знаходиться адреса CDN angular-route.js?
Sahar Sany

@SaharSany - Документація наangular-route адресу CDN, а також інші параметри. Щодо ui-routerнаразі не існує CDN, про який я знаю.
Scotty.NET

3
ui-routerздається, він не є власним CDN, хоча є на cdnjs: cdnjs.com/libraries/angular-ui-router
Nick

41

додавання до відповіді Скотті:

Варіант 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
Вибачте, але я мушу визнати, що це здається дуже схожим на відповідь, що вже надана ??
Scotty.NET

2
... в інших місцях я виявив, що люди не в змозі знайти посилання / URL для завантаження або посилання на 'angular-route.min.js'. Ось що я і дав у відповіді, і так, я погоджуюсь на «ngRoute» залежність, про яку ви говорили, тому я також додав це у своїй відповіді.
mayankcpdixit

Мені більше ніж трохи набридло пекло js. Безумовно, має бути кращий спосіб, ніж з'ясування належного модуля стека за модулем.

Ось як це робиться @SamanthaAtkins. Якщо ви знаєте, що потрібно, ви вводите залежність і включаєте файл JS, якщо у вас немає коду для цієї залежності. Хоча я б оцінив кращий спосіб, якщо хтось запропонує.
mayankcpdixit

3

У моєму випадку це було тому, що файл був зміщений із неправильною сферою застосування. Використовуйте масив!

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

Синтаксис кави:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.