2016-06-29 6 views
0

Я борюсь с этой неизвестной ошибкой поставщика и просто задаюсь вопросом, что я делаю неправильно. У этой структуры:

в main.js

'use strict'; 

angular.module('myApp') 
    .controller('MainCtrl', ['navService', function (navService) { 
    this.awesomeThings = [ 
    'HTML5 Boilerplate', 
    'AngularJS', 
    'Karma' 
]; 

    this.active = false; 

    navService.getPosition(); 

}]); 

в индексе HTML У меня нг-контроллер = "MainCtrl" И, наконец, в navService:

angular.module('myApp') 
.factory('navService', ['$routeProvider', '$location', function ($routeProvider, $location) { 
    function getPosition() { 
     /*code here */ 
    } 

    return { 
     getPosition: getPosition 
    }; 
}]); 

В главных app.js

angular 
    .module('cavyrApp', [ 
'ngAnimate', 
'ngCookies', 
'ngMessages', 
'ngResource', 
'ngRoute', 
'ngSanitize', 
'ngTouch' 
    ]).config........... 
+1

вы включили угловой route.js в вашей головной секции? – Sankar

+1

Кроме того, вы ввели 'ngRoute' в свою основную декларацию модуля приложения? – Lex

+0

@SankarRaj - Да, оба есть – Vladyn

ответ

2

$routeProvider является поставщиком - вы не можете вводить его в заводскую/сервисную службу. Вы можете вводить его в config метод только - чтобы настроить услугу он обеспечит:

module.config(function($routeProvider) { 
    // configure the routes here 
}); 
+0

Да, это было! Большое спасибо. Я ошибся, так как он сказал, что нет navService, но, по-видимому, настоящая причина была неправильной инъекцией, как вы сказали. – Vladyn

0

Вы должны injectfactroy like thi s:

angular.module('myApp',['ngRoute']); //route inject 

и контроллер:

angular.module('myApp').controller('MainCtrl', function(navService) { 
}); 
+0

Помимо удаления аннотации для инъекций (что приведет к разрыву кода, если оно будет уменьшено), это точно **, как OP использует фабрику. – Lex

+0

Этот способ не работает неудачно. Я удалил второй массив аргументов, как вы посоветовали. – Vladyn

+0

соедините 2 ответа, редактирование. –

0

Прежде всего, вы должны включать это ...

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js" type="javascript"> </script> 

, а затем

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

впрыскивать ngRoute в вашем приложении.

+0

У меня определенно есть и включены, и введены! – Vladyn

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