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? –