角度ng-单击多个功能

时间:2018-02-15 10:57:34

标签: angularjs

<div ng-click="method1(); method2()> </div>

这里,如果method1()调用数据库/外部服务并获取数据。而method2()是一些其他的行为执行,如UI绑定 假设如果从method1()获取数据有延迟,如何避免或停止执行method2()直到method1()执行完成。

注意:由于某些限制,我无法从method1()调用method2()调用。另外,我想仅从ng-click执行这两种方法。

3 个答案:

答案 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>