0
我有这个简单的代码片段:
HTML:
<div ng-app="myApp" ng-controller="SampleController">
<p>{{val1}}</p>
<p>{{val2}}</p>
<input type="button" value="Update" ng-click="update()" />
</div>
的Javascript:
var app = angular.module('myApp', []);
app.controller('SampleController', ['$scope', function($scope) {
$scope.val1 = "Not updated";
$scope.val2 = "Not updated";
$scope.update = function() {
$scope.val1 = "Updated outside!";
setTimeout(function() {
$scope.val2 = "Update inside!";
}, 1);
};
}]);
片段也jsfiddle。
如果我点击更新按钮,只有val1值在html中更新。如何解决这个问题?但最重要的是,为什么会发生这种情况?
PS: setTimeout只是简化了问题。事实上,问题是关于任何具有回调函数的自定义组件。
不错,但如果我使用别的东西,像jQuery.ajax.success或$ http.get。或者是什么东西,没有黑客(如'超时')由angularjs? –
那么'http.get'会触发一个摘要循环 - 所以你的安全。基本上,角模块之外的任何内容不会触发周期,所以你需要解决它与黑客或写你自己的角度模块 – tymeJV
是否有某种方式来通知“消化周期”,一个范围变化maded? –