【发布时间】:2016-08-30 11:29:19
【问题描述】:
我正在通过单击按钮更新 $scope,这基本上是进行 Restangular 调用、获取数据并填充 $scope 变量。
但是,如果用户在 $digest 循环运行时多次单击该按钮,则 $scope 会更新为重复值。
我很确定这是一个常见问题。但是,我在 SO 上还没有遇到我正在寻找的解决方案。
人们建议使用$timeout,但这似乎不合逻辑。
我宁愿在$digest 循环运行时禁用该按钮。
这是我目前实现的。
$scope.names = [];
$scope.disableButton = true;
FetchNames.getAllNames().then(function(result){
result.data.forEach(function(name){
$scope.names.push(name);
});
$scope.disableButton = false;
});
在这里,当 promise 得到解决时,按钮被禁用。 但这并不能解决我的问题。我需要检查摘要周期何时完成。
【问题讨论】:
-
我不明白为什么
$timeout应该是“反逻辑”的,因为它在触发回调之前等待摘要周期完成。 -
cbass,它不会再运行摘要循环吗?
标签: javascript angularjs