我解决了2个问题,每个控制器都有一个问题。路由控制器解析混合起来
http://jsfiddle.net/pvivera/RhAHy/
var app = angular.module('testApp', [], function($routeProvider){
$routeProvider.when('/', {
template: 'Home {{model}}',
controller: 'HomeCtrl',
resolve: HomeCtrl.resolve
})
.when('/About', {
template: 'About {{model}}',
controller: 'AboutCtrl',
resolve: AboutCtrl.resolve
});
});
var HomeCtrl = app.controller('HomeCtrl', function($scope, HomeCtrlData){
$scope.model = HomeCtrlData;
});
HomeCtrl.resolve = {
HomeCtrlData: function($q, $timeout){
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('AboutCtrlResolver');
}, 2000);
return deferred.promise;
}
};
var AboutCtrl = app.controller('AboutCtrl', function($scope, AboutCtrlData){
$scope.model = AboutCtrlData;
});
AboutCtrl.resolve = {
AboutCtrlData: function($q, $timeout){
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('AboutCtrlResolver');
}, 2000);
return deferred.promise;
}
};
在jsfiddler脚本,当HomeCtrl要解决HomeCtrlData我收到此错误未知的提供:HomeCtrlDataProvider < - HomeCtrlData
如果我改变HomeCtrlData到AboutCtrlData在HomeCtrl一切正常,似乎分配的唯一解决方案是AboutCtrl.resolve
任何想法?
如果内嵌什么HomeCtrl.resolve设置为 - 即'决心:{HomeCtrlData:...}'它的工作原理,但我不知道为什么。 (另外,我认为代码中出现的第一个'AboutCtrlResolver'应该是'HomeCtrlResolver'。) – 2013-02-26 04:40:01