我有两条路线与决心。像这样:
.when('/foos',{ templateUrl: 'views/foos.html',controller: 'FoosCtrl',resolve: { foo_list: ['$q','$route','$timeout','$location','Foos',function($q,$route,$timeout,$location,Foos) { // postpone the execution var deferred_foo = $q.defer() Foos.getFoos({token:session_uid},successCb) function successCb(list) { if(list['status'] === 200) { deferred_foo.resolve(list) } else { alert('Crashcrashcrash') deferred_foo.reject("Something just wasn't right") //$location.path('maintenance') } } return deferred_foo.promise }] } }) .when('/r/:type/:bar_id',{ templateUrl: 'views/bar.html',controller: 'BarsCtrl',resolve: { bar: ['$q','Bars',Bars) { // postpone the execution var deferred = $q.defer() Bars.getBar({type: bar_type},successCb) function successCb(result) { if(result['status'] === 200) { deferred.resolve(result) } else { alert('Crashcrashcrash') deferred.reject("Something just wasn't right") $location.path('foos') } return deferred.promise }] } })
然后我有两个控制器工作这样:
App.controller('FoosCtrl',['$scope','foo_list',function($scope,Foos,foo_list) {...} App.controller('BarsCtrl','$routeParams','bar','sharedService',$routeParams,Bars,bar,sharedService) {...}
有人可以解释为什么Bar工作,但Foo给我错误:未知的提供者:foo_listProvider< - foo_list?我试着用不同的名称替换foo_list,如果camelCasing做了一些,但没有帮助。
所以,这个问题是惊人地类似于我自己的,我只是从人们的帮助下,在Angular IRC通道…你是,偶然,通过ng控制器设置您的控制器?我有:
<div ng-controller="myCtrl">
…当它应该被删除:
<div>
…因为我在路由器的决心中设置控制器。这就是我在做什么,这是造成这个问题。你可以在这里看到更多: