我想放在一起的Hello World示例$routeProvider
使用resolve
将数据提供给控制器。这是the ; 我得到的错误Unknown provider: greetingService
是在控制器和配置之前声明了工厂。此代码有什么问题?
index.html:
<body ng-controller="mainCtrl">
<a href='#option1'>click me to show Hello World</a>
<br/><br/>
{{message}}
<br/><br/>
*****
<div ng-view></div>
*****
</body>
template.html:
<div ng-controller="templateCtrl">
{{hello}}
</div
app.js:
angular.module('app', ['ngRoute']);
angular.module('app')
.factory("greetingService", function($q, $timeout){
return {
getGreeting: function(){
var deferred = $q.defer();
$timeout(function(){
deferred.resolve("Hello");
},1000);
return deferred.promise;
}
};
});
angular.module('app')
.controller('mainCtrl', function($scope) {
$scope.message = "Message in the main controller";
});
angular.module('app')
.controller('templateCtrl', function($scope,greeting) {
$scope.hello = greeting + " World";
});
angular.module('app')
.config(function($routeProvider,greetingService) {
$routeProvider.
when('/option1', {
templateUrl: 'template.html',
controller: 'templateCtrl',
resolve: {
greeting: function(greetingService){
return greetingService.getGreeting();
}
}
});
});
这是因为您正在注入greetingService
main app.config
。删除该行,它将起作用:
http://plnkr.co/edit/GRqZQrEvKa6dntx39qOu?p=preview
您只能将提供程序注入实例配置块(即$ locationProvider,$ routeProvider)中。您可以将实例注入到.run
应用程序块中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句