Подтвердить что ты не робот

AngularJS - Инъекция Factory в функцию ссылки

У меня есть простой код:

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), и это тоже не сработало. Почему?

4b9b3361

Ответ 1

Он уже должен быть доступен внутри функции ссылки

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;
        }
    };
}]);