<div ng-click="method1(); method2()> </div>
这里,如果method1()调用数据库/外部服务并获取数据。而method2()是一些其他的行为执行,如UI绑定 假设如果从method1()获取数据有延迟,如何避免或停止执行method2()直到method1()执行完成。
注意:由于某些限制,我无法从method1()调用method2()调用。另外,我想仅从ng-click执行这两种方法。
答案 0 :(得分:1)
尝试$timeout
:
<div ng-click="method1()"></div>
$scope.method1=function() {
// calls the database / external service
$timeout(function () {
method2();
}, 5000);
}
答案 1 :(得分:1)
在方法1的响应中调用方法2,就像这样
function method1() {
service.getData().then(function(response) {
//got the response here, do the operation and call method2 here
method2()
}, function() {});
}
如果你打电话给它任何超时,那么这不是一个肯定的解决方案。所以请回复它。
答案 2 :(得分:1)
你可以做这样的事情
function method1() {
API.getData().then(function(response) {
// call method2 here after you receive response
method2()
}, function(error) {});
}
HTML
<div ng-click="method1()> </div>