AngualrJS - 在ng-click中的摘要周期后执行代码

时间:2015-12-29 19:46:41

标签: javascript jquery angularjs

我有一个包含多个输入元素的表单。输入元素值设置为范围变量。有一个带有ng-click指令的按钮,它包含使用某些逻辑(从作用域变量调用其他方法)的代码,以通过作用域变量确定和设置输入元素值:

$raw_data = // query to get the data from the DB
$data = unserialize( $raw_data );

这个问题是$ apply在执行所有ng-click函数之后才执行,所以在调用submit()时输入值还没有设置。

或许还有更好的方法吗?我能找到的唯一解决方案是将一个$ watch放在variableToBeSetOnButtonClick上,它调用submit(),并尝试在该回调中取消注册$ watch,但这看起来很糟糕。

1 个答案:

答案 0 :(得分:5)

在提交表单之前尝试添加$timeout()

myApp.directive('...', function($timeout) {
    ...     
    var submitForm = function() {
        $timeout(function () {
             $(element).find("form")[0].submit();
        });
    };
}