我写了一个服务来在控制器之间共享和更新数据
myApp.service('Physician',function($http){
var physicians = [];
var refresh = function(fetch) {
physicians = []
$http({
url: '/provider/',
method: 'GET',
}).success(function (response) {
$.each(response, function(index, value){
physicians.push(value);
});
console.log(physicians);
});
}
return {
refresh: refresh,
all: physicians
};
})
我在控制器中包含了上述服务
function physicianController($scope, $http, Physician) {
$scope.physicians = Physician.all
}
现在我有另一个控制器,它共享Physician服务并在其中调用刷新功能。
function conditionController($scope, $http, Physician) {
$scope.add = function() {
Physician.refresh();
}
}
一旦刷新函数被调用,我希望physicianController中的$ scope.physicians得到更新,但不是,任何提示都会有所帮助。
答案 0 :(得分:2)
@Sergiu Paraschiv的答案:physicians = []基本上为医生变量分配一个新的参考。 AngularJS依赖它来保持相同的引用,以便能够跟踪变化。因此,您需要清空数组,而不是重新初始化它。 A.splice(0,A.length)应该可以工作