注入服务到指令的Angularjs Uncaught ReferenceError

时间:2014-09-30 21:18:13

标签: angularjs angular-directive

仍然找到我的方式与角度和我得到"未捕获的ReferenceError:y未定义"在线" .directive(' y',[y,function(y){"。它就像它没有加载服务。我也是尝试将脚本从人体模型移到头部,但没有做到。

    angular.module('fofApp', ['appRoutes'])
    .factory('y',['$rootscope',function($rootScope) {
        return {val: "he"};
    }])
    .directive('yow',[y,function(y){
        return {
            restrict: "E",
            template: "<h1>aaaaah</h1>"
        };
    }]);

我的HTML是

<!doctype html>
<html>
 <head>
 </head>
 <body ng-app="fofApp">
  <yow></yow>
 <script src="libs/angular/angular.js"></script>
 <script src="js/app.js"></script>
 </body>
</html>

2 个答案:

答案 0 :(得分:1)

使用依赖注入时的缩小保护需要字符串作为第一个参数(以匹配传递给函数的参数的顺序/数量),这始终是 last 参数。

将指令中的y更改为字符串。像这样:

.directive('yow',['y',function(y){

这是一个小提琴:http://jsfiddle.net/u4v4cafm/(控制台中没有错误)

答案 1 :(得分:0)

不确定这是否是问题,但工厂希望您返回一个对象。尝试将其更改为:

angular.module('fofApp', ['appRoutes'])
    .factory('y',['$rootscope',function($rootScope) {
        return { value :"he" }
    }])