在我的代码的一行中,我有类似的内容:
...
while(!$scope.isMyTurn(privilege)){}
I will run next line of codes
但是像往常一样它会阻止我的浏览器。我必须等到真正运行下一行代码。我不想阻止我的浏览器和其他功能应该可以工作,因为(其他一些触发的事件会改变轮到我的情况)用户应该继续他所做的一切。
这是为了在轮到我之前刷新图形。
在我的代码的一行中,我有类似的内容:
...
while(!$scope.isMyTurn(privilege)){}
I will run next line of codes
但是像往常一样它会阻止我的浏览器。我必须等到真正运行下一行代码。我不想阻止我的浏览器和其他功能应该可以工作,因为(其他一些触发的事件会改变轮到我的情况)用户应该继续他所做的一切。
这是为了在轮到我之前刷新图形。
你应该这样做:
$scope.$watch("isMyTurn(privilege)",function(val){
if(val){
//I will run next line of codes
}
});
而不是您尝试做的事情。请注意,在这种情况下,privilege
也应该是一个scope
变量,例如
$scope.privilege
如果您不希望它成为scope
变量,请不要将其作为参数传递。但直接在函数内部访问它..
希望这可以帮助..
考虑使用 $scope.$watch 函数。
查看($watch): http ://docs.angularjs.org/api/ng.$rootScope.Scope
我不知道 angularJS 但在普通的 JavaScript 中你可以使用setTimeout
function whenReady()
{
if ($scope.isMyTurn(privilege)){
I will run next line of codes
}
else
{
window.setTimeout(whenReady, 1000);
}
}
window.setTimeout(whenReady, 1000);