我试图将一些通用导航格式代码从控制器移到工厂中。
我是否需要向工厂注入$ 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
};
}
]);
答案 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();
我希望这会有所帮助。