2014-09-30 85 views
2

仍然找到我的方式與角度,我得到「未捕獲的ReferenceError:y沒有定義」的行「.directive('y',[y,function(y){ 「這就像它沒有加載該服務。我也試圖從BOD移動腳本的頭部,但沒有做到。Angularjs Uncaught ReferenceError注入服務指令

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> 

回答

1

使用依賴注入時需要的字符串作爲第一參數縮小保護(以匹配通入該函數的參數的順序/數),它總是最後參數。

將您的指令中的y更改爲字符串。像這樣:

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

這裏有一個小提琴:http://jsfiddle.net/u4v4cafm/(在控制檯中沒有錯誤)

+0

看來是這樣的話。 – cclusetti 2014-09-30 21:54:31

0

不知道這是該問題,但工廠希望你返回一個對象。嘗試改變它:

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