1
我想在頁面加載時從服務中獲取搜索結果。要更新視圖,我只需要從回調中調用$apply
一次以避免Error: [$rootScope:inprog]
。我嘗試了ng-init,但似乎沒有調用digest循環。有沒有更好的方法來做到這一點?處理回調的方法是什麼?如何在第一次運行時更新回調視圖
代碼:
<input autocomplete="off" autocorrect="off" ng-keyup="search()" ng-model="query" spellcheck="false" type="text">
和js
.controller('HomeCtrl', function ($scope, Contacts) {
$scope.hits = [];
$scope.query = '';
$scope.initRun = true;
$scope.search = function() {
Contacts.search($scope.query, function(success, content) {
if (!success || $scope.query != content.query) {
return;
}
$scope.hits = content.hits;
if ($scope.initRun){
$scope.$apply();
$scope.initRun = false;
}
});
};
$scope.search();
});
現場演示http://lukasz-madon.github.io/algolia-angular-example/#/
有什麼區別? –
$ scope。如果未定義範圍中的變量,$ apply()可能會引發異常,所以angular引發錯誤。 – Venkat