【问题标题】:Angularjs Uncaught ReferenceError on injected service into directiveAngularjs Uncaught ReferenceError 将服务注入指令
【发布时间】:2014-09-30 21:18:12
【问题描述】:

仍然用 angular 找到我的方式,我在 ".directive('y',[y,function(y){" 行上得到了 "Uncaught ReferenceError: y is not defined" 。就像它没有加载了服务。我还尝试将脚本从主体移到头部,但没有任何效果。

    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>

【问题讨论】:

    标签: angularjs angular-directive


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 看来是这样。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多