【发布时间】:2015-04-04 17:37:02
【问题描述】:
我有一个“添加朋友”对话框,当您添加用户时,它会返回状态历史记录并更新朋友列表。一切正常,除了列表没有显示新用户 - 即使console.logs 都显示了正确的数据:
[e, e, e, $promise: Promise, $resolved: true]
(3 es 是正确的,我之前有两个)。
$scope.add = function (user, goback) {
if (goback)
$ionicHistory.goBack();
$ionicLoading.show();
ApiService.friends.request(user._id, function (data, status, headers, cfg) {
$scope.users = ApiService.users.friends(function (res, headers) {
$ionicLoading.hide();
console.log($scope.users);
});
console.log($scope.users);
});
}
我尝试将 $scope.users = 包装在 $scope.$apply 中,或者在不同的地方调用它,但这只会(正确地)引发 $digest already in progress 错误(因为 $resource 会自动执行此操作)。
发生了什么,我该如何解决?
wtf 是怎么回事?我只是尝试这样做:
$scope.add = function (user, goback) {
$scope.users = [];
}
(甚至将$scope.users = [] 包装在$apply 中)但什么也没发生!
但是 $scope.add 是从 ng-click 指令调用的 - 这应该可以工作!
发现实际错误!
我的添加好友视图,add 被调用,当然有它自己的 $scope。这很脏,但我最终使用$scope.$parent.users 而不是$scope.users 来保存数据。
【问题讨论】:
标签: angularjs angularjs-scope angularjs-ng-repeat ngresource