是否有其他方法可用于执行以下操作?这个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();
答案 0 :(得分:1)
将代码包装在$ timeout中或使用$ apply()。请注意,$ timeout在内部调用$ apply()。 $ apply专门用于重新同步带角度的外部变化(不是角度循环)。
如果您的功能在click或on事件上触发。您可以使用指令ng-click或ng- [event]将函数绑定到angular。
答案 1 :(得分:0)
使用$scope.$evalAsync()
代替。在这种情况下,它不会抛出错误并执行相同的操作。