0
我有一个角度控制器,其中有许多变量decalred。我想在我的角度服务来访问这些:AngularJS - 在控制器中定义的服务中访问var
app.controller("MyController", function($scope, myService) {
var pageIDs = {
'1': 'home',
'2': 'contact-us',
'3': 'products',
'4': 'complaints'
}
var doSomething = {
'home': function() {
$scope.Model($scope.MyData, {
Data: $scope.Data
});
},
// Contact-us function ////////
// Products functions ////////
// Complaints functions ////////
}
$scope.service = myService.getData;
}
app.factory('myService', function() {
return {
getData: function() {
var Hash = window.location.hash;
if (Hash) {
var WithoutHash = WithHash.substring(1);
if (doSomething [WithoutHash]) doSomething [WithoutHash]();
}
}
};
});
正如你所看到的,为myService中,我试图来访问我的控制器中定义的VAR DoSomething的。
我认为你应该改变你的方法,服务/工厂没有线索在哪里注入,如果你注入'myService' t 10个控制器,每个控制器都会有'doSomething'?将服务视为控制器的助手或可从控制器提取的功能的集合,并且可以独立工作或作为少数控制器的通用部分。希望这是有道理的 – maurycy 2014-09-03 10:31:03