我想在页面加载时从服务中获取搜索结果。要更新视图,我只需要从回调中调用$apply
一次以避免Error: [$rootScope:inprog]
。我尝试了ng-init,但似乎它没有调用摘要循环。有没有更好的方法呢?处理回调的方法是什么?
代码:
<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/#/
答案 0 :(得分:0)
只是建议而不是使用$scope.$apply()
尝试并使用$scope.$apply(function(){ 'digest loop' });
这是更合适的做法。