我的控制器中有范围属性
isLoading : boolean = true;
和isLoading为false时应执行的方法A,如果isLoading为true且调用methodA,则应等待isLoading更改为false,然后继续执行
methodA() {
// if isLoading == true wait for it to change to false
// then do some stuff
}
我怎么能做到这一点?
答案 0 :(得分:0)
解决方案1:使用观察者
$scope.$watch('isLoading', function(n){
if(n){
methodA();
}
}
)
解决方案2:如果某个html视图中isLoading
绑定到ng-model
(例如输入)。在html中的someotherMethod
(该输入)上调用ng-change
。和someotherMethod
会是这样的:
function someotherMethod(){
if(isLoading){
methodA()
}
}
答案 1 :(得分:0)
您还可以使用promise对象,并触发您喜欢的任何内容 回应。
$ http默认返回一个promise对象,所以你可以做一些事情 像这样:
在您的工厂/服务中:
foo: function($http){
return $http({
method: 'POST',
url: API_PATH,
data: { email: email, password: password }
});
}
现在,在您的控制器中使用它:
foo().then(
function success(response){
// fire your method (methodA)
},
function error(error){
}
);