角度工厂依赖注入

时间:2014-10-07 17:28:50

标签: angularjs dependency-injection

我试图将一些通用导航格式代码从控制器移到工厂中。

我是否需要向工厂注入$ scope?我从周日尝试了六种方式来注入范围,但我尝试的每种方法都会给我带来错误。

或者我的stageHeight,在工厂中的stagesWidth变量是否需要确定范围?

控制器:

angular.module('sysomos.ads').
controller('LinkController', ['$scope', '$state', '$api', 'LinkFactory',
    function($scope, $state, $api, LinkFactory) {

     console.log(LinkFactory.make(['twitter', 'ad', 'view']));
    }
]);

工厂:

angular.module('sysomos.ads').
factory('LinkFactory',  function(){
    return {
        make: function(arrSteps){

           $scope.stagesHeight = 30;// what scope does my logic need?
           $scope.stagesWidth = 145;
           // lots of intervening steps
           return arrSteps.join(",");// just return me the array for now

    };
}

]);

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

.factory('LinkFactory', function(){

    return {
        make: function(arrSteps){

            var stagesHeight = 30;// what scope does my logic need?
            var stagesWidth = 145;
            // lots of intervening steps

            return arrSteps.join(",");// just return me the array for now

};
}

然后从您的ctrl中调用您的服务/工厂:

$scope.foo.something = LinkFactory.make();

我希望这会有所帮助。