AngularJS $适用于范围内

时间:2016-03-07 13:24:56

标签: javascript angularjs

是否有其他方法可用于执行以下操作?这个jQuery函数在Angular $范围内使用,它工作正常,但它会抛出$ apply错误,主要是因为它在$ apply中被视为$ apply。然而,如果我删除$ scope。$ apply(),它就会停止工作。

function myfunction(start, end) {
        // Lots of jQuery code here - omitted from this example

        // Update the scope 
        $scope.myf = "abc";
        $scope.myt = "def";
        $scope.$apply();
}

myfunction();

2 个答案:

答案 0 :(得分:1)

将代码包装在$ timeout中或使用$ apply()。请注意,$ timeout在内部调用$ apply()。 $ apply专门用于重新同步带角度的外部变化(不是角度循环)。

如果您的功能在click或on事件上触发。您可以使用指令ng-click或ng- [event]将函数绑定到angular。

答案 1 :(得分:0)

使用$scope.$evalAsync()代替。在这种情况下,它不会抛出错误并执行相同的操作。