我创建了一个简单的服务和一个使用该服务的简单指令。这是它的样子:
angular.module("app",[]);
angular.module("app").factory('dummyService',dummyService);
angular.module("app").directive('dummyDirective', ['dummyService',dummyDirective]);
function dummyService(){
this.name = "hello";
}
function dummyDirective(dummyService) {
return {
link:function(scope){
console.log(dummyService.name);
}
}
}
然而,当我运行代码时,我得到了:
[$injector:undef] http://errors.angularjs.org/1.4.7/$injector/undef?p0=dummyService
有什么建议吗?
答案 0 :(得分:4)
您应该使用服务而不是工厂。在您的代码更改
angular.module("app").factory('dummyService',dummyService);
到
angular.module("app").service('dummyService',dummyService);
如果你想使用工厂,你需要在工厂函数中返回对象:
function dummyService(){
return {
name : "hello";
}
}
答案 1 :(得分:-1)
您没有传递指令的依赖项:
angular.module("app").directive('dummyDirective', ['dummyService', dummyDirective(dummyService)]);