2013-10-05 5 views
65

Я пытаюсь запустить приложение AngularJS 1.2 RC2. В настоящее время я использую проект Angular Seed, чтобы попытаться запустить приложение. К сожалению, проект Angular Seed использует v1.0.7. От углового проекта Seed, я обновил зависимости будут следующие:

$script([ 
    'res/js/angular-1.2.0-rc.2.js', 
    'res/js/angular-route-1.2.0-rc.2.js', 
    'res/js/app.js?v=2', 
], function() { 
    // when all is done, execute bootstrap angular application 
    angular.bootstrap(document, ['myApp']); 
}); 

В app.js, у меня есть следующие:

'use strict'; 

angular.module('myApp', []). 
    config(['$routeProvider', function($routeProvider) { 
     $routeProvider.otherwise({redirectTo: '/home'}); 
    }]); 

Когда я запускаю это приложение, я получаю следующее сообщение об ошибке:

Error: [$injector:unpr] Unknown provider: $routeProvider 

Я прочитал некоторые другие ответы, которые говорят такие вещи, как: 1) INJECT «ngroute» или 2) Вы должны определить контроллер в маршруте. Моя проблема в том, что я не понимаю, как вводить ngroute. Кроме того, действительно ли мне нужно определить контроллер на маршруте? Такой подход не кажется масштабируемым. Мое приложение может иметь тысячу просмотров. По-моему, похоже, что нужно определять маршруты, не загружая все контроллеры.

+3

Вы пытались добавить ngRoute в определение модуля myApp, как этот 'angular.module ('myApp', ['ngRoute']).' – Chandermani

+0

Этот вопрос должен быть увязан в Angular js video tutorial, где все работает отлично на демонстрации инструктора. – Rohit

ответ

27

В угловом 1.4 +, в дополнении к добавлению зависимости

angular.module('myApp', ['ngRoute']) 

, мы также должны ссылаться на отдельный угловой-файл route.js

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

см https://docs.angularjs.org/api/ngRoute

141

Похоже, вы забыли включить модуль ngRoute в свою зависимость для myApp.

В Angular 1.2 они сделали необязательным ngRoute (поэтому вы можете использовать сторонние поставщики маршрутов и т. Д.), И вы должны явно зависеть от него в модулях вместе с including the separate file.

'use strict'; 

angular.module('myApp', ['ngRoute']). 
    config(['$routeProvider', function($routeProvider) { 
$routeProvider.otherwise({redirectTo: '/home'}); 
}]); 
+1

Сохранено мое прикладом. Обновлялся до Angular 1.2 Спасибо –

+1

Этот ответ спас мою жизнь, пытаясь запустить «dist» версию todo-приложения из http://yeoman.io/codelab.html - так что спасибо Cuong Vo! – kasperwf

+1

, так это значит, когда вы тестируете его, что вам нужно предоставить его только как параметр для модуля, а не как параметр при загрузке модуля для тестирования? – Katana24

Смежные вопросы