我的Angular Service存在问题。我有两个控制器和一个服务。基本上,第一个控制器通过AJAX调用获取数据并将该数据存储在该服务上。第二个控制器然后通过服务访问这些数据。但是,我已经成功地将数据从第一个控制器传递到了服务,但是当我从第二个控制器访问数据时,它不会返回任何内容。控制器无法访问Angular Service变量
我有一个视图与2个控制器的方式。
由于
服务
app.service('SharedDataService', function() {
// Holds subtask that will be passed to other controllers
// if SharedDataService is invoke.
var _subTask = {};
return {
subTask : _subTask
};
});
控制器1
app.controller('MainCategoryController',function($scope,$http,SharedDataService){
$scope.loadSubtask = function(m_uid){
$http({
method: 'POST',
url: $locationProvider + 'query_stasks',
data: {
m_uid: m_uid
}
}).then(function successCallback(response) {
SharedDataService.subTask = response.data;
},function errorCallback(response){
});
}
}
控制器2
app.controller('SubTaskController',function($scope,$http,$location,$rootScope,SharedDataService){
$scope.$watch('SharedDataService.subTask', function(newValue,oldValue){
console.log("ni sud');");
if (newValue !== oldValue) {
$scope.subTasks = newValue;
}
return SharedDataService.subTask;
});
}
明白了!它的工作..我从来没有使用过“watchExpression” – drake24