我有一个ng-repeat生成的通知页面,如下所示:
列表生成如下:
<div id="notifications" class="page_content">
<div class="notification center" notification-view notification="notification" providers="notifications.providers" ng-repeat="notification in notificationsObjects">
</div>
在用户完成通知(并在数据库中更新数据)之后,我通过删除已完成的通知来更新notificationsObjects数组。我使用以下函数执行此操作:
$scope.removeNotificationFromNotificationList = function(notification){
for(var i = 0; i<$scope.notificationsObjects.length; i++){
if($scope.notificationsObjects[i].id == notification.id){
var indexToRemove = $scope.notificationsObjects.indexOf($scope.notificationsObjects[i]);
var updatedArray = $scope.notificationsObjects;
updatedArray.splice(indexToRemove, 1);
$scope.notificationsObjects = updatedArray;
}
}
}
但是在更新数组后,虽然数据仍然可用,但仍会发生这种情况: 2个数组(更新前后)看起来完全符合我的预期,但由于某种原因,单个通知的指令不再具有通知对象。这些是两个notificationsObjects数组(在删除完成的通知之前和之后):
我想通过重新计算通知并重置新的$ scope.notificationsObjects可以解决我的问题,但确实如此,但它重新加载了我的整个DOM,我不想这样做。我只是希望已完成的通知从数组中消失(因此,将其从DOM中删除)。有没有人知道导致这个问题的原因,或者有没有人有更好的解决方案来解决这个问题?
提前致谢!
答案 0 :(得分:0)
我现在解决了,但没有找到原因。我注意到单个通知指令中的一些变量没有在$ scope上设置。即使它们不依赖于变化,我将它们与$ scope相结合,问题也解决了。