Angularjs 路线控制器解决混乱
我有两个解决方案的问题,每个控制器一个Angularjs 路线控制器解决混乱,angularjs,Angularjs,我有两个解决方案的问题,每个控制器一个 在jsfiddler脚本中,当HomeCtrl想要解析HomeCtrlData时,我收到一个错误未知提供程序:HomeCtrlDataProvider这里的问题是app.controller()不返回控制器,它返回您的应用程序模块。所以你要分配两次app.resolve,这就是为什么它对其中一个不起作用 我建议您像这样内联resolve函数: var app = angular.module('testApp', [], function($routeP
在jsfiddler脚本中,当HomeCtrl想要解析HomeCtrlData时,我收到一个错误未知提供程序:HomeCtrlDataProvider这里的问题是
app.controller()
不返回控制器,它返回您的应用程序模块。所以你要分配两次app.resolve
,这就是为什么它对其中一个不起作用
我建议您像这样内联resolve函数:
var app = angular.module('testApp', [], function($routeProvider){
$routeProvider.when('/', {
template: 'Home {{model}}',
controller: 'HomeCtrl',
resolve: {
HomeCtrlData: function($q, $timeout) {
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('HomeCtrlData');
}, 2000);
return deferred.promise;
}
}
})
.when('/About', {
template: 'About {{model}}',
controller: 'AboutCtrl',
resolve: {
AboutCtrlData: function($q, $timeout) {
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('AboutCtrlData');
}, 2000);
return deferred.promise;
}
}
});
});
如果您内联HomeCtrl.resolve设置为的值,即,
resolve:{HomeCtrlData:…}
它可以工作,但我不知道为什么。(另外,我认为代码中出现的关于TtrlResolver的第一个位置应该是HomeCtrlResolver
)
var app = angular.module('testApp', [], function($routeProvider){
$routeProvider.when('/', {
template: 'Home {{model}}',
controller: 'HomeCtrl',
resolve: {
HomeCtrlData: function($q, $timeout) {
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('HomeCtrlData');
}, 2000);
return deferred.promise;
}
}
})
.when('/About', {
template: 'About {{model}}',
controller: 'AboutCtrl',
resolve: {
AboutCtrlData: function($q, $timeout) {
var deferred = $q.defer();
$timeout(function(){
return deferred.resolve('AboutCtrlData');
}, 2000);
return deferred.promise;
}
}
});
});