给定以下 AngularJS 控制器:
function PhoneListCtrl($scope, $http) {
$scope.phones = {};
$http.get('phones/phones.json').success(function(data) {
$scope.phones = data.splice(0, 5);
});
$scope.orderProp = 'age';
}
使用该代码(来自 Angular 官方教程),绑定phones
模型的模板将被更新以反映收到的 JSON 响应。但是,如果您将 $scope 更新包装在setTimeout
如下语句中:
function PhoneListCtrl($scope, $http) {
$scope.phones = {};
$http.get('phones/phones.json').success(function(data) {
setTimeout(
function(){
$scope.phones = data.splice(0, 5);
},
5000
);
});
$scope.orderProp = 'age';
}
模板将不会更新,在这种情况下,角度代码似乎无法识别模型更改。
我的问题很明显:为什么它在第二种情况下不起作用?$http 回调中的模型更改如何通知角度运行时?