作用域是't更新$apply使用
scope isn't updating on $apply use
我有一段$scope文本,应该动态更新。
<span ng-bind="user.balance"></span>
按下按钮后,会收到新的余额值,并应在此处显示。
$http.post('/transaction/send', transaction).success(function(sender) {
console.log("http response");
$scope.user = sender;
console.log($scope.user.balance);
$timeout(function() {$scope.$apply(); console.log("apply used");}, 1000);
});
在控制台日志中,任何内容都会被正确地接收和显示,但它仍然不会更新视图中的范围。我做错了什么?我正在使用$timeout来消除"$digest已经在使用"
您应该使用angular.extend(dst, src)
,而不是将新对象分配给$scope.user
变量。通过这样做,您将把新属性合并到旧对象中;这将使您的绑定继续工作。最后,你应该有这样的东西:
$http.post('/transaction/send', transaction).success(function(sender) {
console.log("http response");
angular.extend($scope.user, sender);
console.log($scope.user.balance);
});
请注意,这只是一个浅合并,对于深合并,你应该看看这个讨论或这个讨论。
相关文章:
- Javascript循环不会自我更新
- AngularJS$apply有时不会;当在highchart中使用click事件时,t触发更新{{}}中html标记中
- Angular $scope更新、导航和 $scope.$apply() 后不绑定到视图
- $apply在angularJs中没有更新我的范围变量
- 我正在使用 $scope.$apply 在 http 调用后更新对象数组.谁能告诉我正确的方法
- Ng-重复在资源查询后不更新 - $apply() 不起作用
- 更新'这'当返回用.apply()调用的函数时,从回调
- Angularfire-$scope在异步调用后不会更新,$apply抛出错误
- 为什么在这种特殊情况下视图没有更新?($scope.$apply)
- 根据AngularJS中$apply或$digest循环的指令更新模型
- 角度变量未更新,尝试调用$apply导致“;摘要已经在进行中”;错误
- Angular即使在使用$apply之后也不会更新视图
- 作用域是't更新$apply使用
- 模板没有更新,我需要使用$rootScope吗?$apply或其他东西
- Angular的ng-click会在ng-repeat中更新$scope,然后使用$apply来更新dom
- 美元的范围.$apply在页面刷新时没有更新
- 在AngularJS中更新没有作用域的变量.$apply()
- Angular作用域不会在apply上更新
- Angular$apply不会更新视图
- 如何让AngularJS更新DOM上的ng-repeat数组拼接?$scope.$apply()返回一个错误