Я думаю, что название довольно ясно, что я прошу. Я создал эту скрипту: http://jsfiddle.net/Sourabh_/HB7LU/13142/
В скрипке я попытался воспроизвести сценарий async
. Это всего лишь пример, но в вызове AJAX, если я не использую $scope.$apply()
, список не обновляется. Я хочу знать, можно ли использовать $scope.$apply()
каждый раз, когда я делаю вызов AJAX для обновления списка или есть какой-то другой механизм, который я могу использовать?
Код, который я написал для репликации сценария (так же, как в скрипке):
HTML
<div ng-controller="MyCtrl">
<li ng-repeat="item in items">
{{item.name}}
</li>
<button ng-click="change()">Change</button>
</div>
JS
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.items = [{name : "abc"},{name : "xyz"},{name : "cde"}];
$scope.change = function(){
test(function(testItem){
$scope.items = testItem;
//$scope.$apply();
})
}
function test(callback){
var testItem = [
{name : "mno"},
{name : "pqr"},
{name : "ste"}
];
setTimeout(function(){callback(testItem)},2000);
}
}