web-dev-qa-db-ja.com

AngularJS-ディレクティブのリンク関数にファクトリーを注入する

私は簡単なコードを持っています:

_define(['app'], function(app)
{
    app.factory('factoryProvider', function(){
        return {
            name: 'my Name'
        }
    });

    app.directive('myDiv',['factoryProvider', function(factoryProvider) {
        return {
            restrict: 'E',
            replace: true,
            templateUrl: 'link/to/template.html',
            controller: function($scope) {
            },
            link: function(scope, routeParams, location) {
                console.log(factoryProvider.name);
            }
        };   
    }])
});
_

myFactory関数内でlinkにアクセスできるようにしたいのですが、できません!私もlink: function(scope, routeParams, location, factoryProvider)を試しましたが、それもうまくいきませんでした。どうして?

18
Kousha

リンク関数内ですでに利用可能である必要があります

app.factory('factoryProvider', function(){
    return {
        name: 'my Name'
    }
});

app.directive('myDiv',['factoryProvider', function(factoryProvider) {
    return {
        restrict: 'E',
        replace: true,
        template: '<p>{{name}}</p>',
        controller: function($scope) {
        },
        link: function(scope) {
            scope.name=factoryProvider.name;
        }
    };
}]);
18
NicolasMoise