将服务注入我的指令时出现角度错误

时间:2015-11-10 16:39:20

标签: angularjs

我创建了一个简单的服务和一个使用该服务的简单指令。这是它的样子:

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

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

您应该使用服务而不是工厂。在您的代码更改

angular.module("app").factory('dummyService',dummyService);

angular.module("app").service('dummyService',dummyService);

如果你想使用工厂,你需要在工厂函数中返回对象:

function dummyService(){
   return {
     name : "hello";
   }  
}

Demo on Jsfiddle

另请参阅:confused about service vs factory

答案 1 :(得分:-1)

您没有传递指令的依赖项:

angular.module("app").directive('dummyDirective', ['dummyService', dummyDirective(dummyService)]);