2

angularでまだ道を見つけていて、「.directive( 'y'、[y、function(y){」)の行で「Uncaught ReferenceError: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>
4

2 に答える 2

1

依存性注入を使用する場合の縮小保護では、最初の引数として文字列が必要です (関数に渡されるパラメーターの順序/数と一致するため)。これは常に最後の引数です。

ディレクティブの y を文字列に変更します。そのようです:

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

ここにフィドルがあります: http://jsfiddle.net/u4v4cafm/ (コンソールにエラーはありません)

于 2014-09-30T21:30:17.860 に答える
0

これが問題かどうかはわかりませんが、ファクトリはオブジェクトを返すことを期待しています。次のように変更してみてください。

angular.module('fofApp', ['appRoutes'])
    .factory('y',['$rootscope',function($rootScope) {
        return { value :"he" }
    }])
于 2014-09-30T21:22:01.997 に答える