如何在删除项目后重新加载ng-repeat

时间:2015-11-26 09:11:45

标签: angularjs angularjs-ng-repeat

我有一个关于ng-repeat的问题。 我有这个网页,我上传图片从json响应中获取它们,我添加了一个插件(flex-images),它处理图片大小和外观。 事实是:插件仅在图片阵列刷新时才有效,但是当我从图片数组中删除项目时,它不会发生。 我的问题是:如何强制ng-repeat刷新? 代码在下面,提前感谢:

app.directive('onLastRepeat', function() {
return function(scope, element, attrs) {

    if (scope.$last) setTimeout(function() {
        $('#items').flexImages({ rowHeight: 500 });
    }, 1);
};

});

    app.controller('customersCtrl', function($scope, $http, $rootScope,       $window, $location, $timeout, ngDialog, toaster, $sce) {


 $scope.deletePicture = function(id,index) {
    $scope.pictures.splice(index, 1);
    };
});

2 个答案:

答案 0 :(得分:1)

您无需重新加载任何内容。 Angular将观察传递给ng-repeat的对象的更改,并通过计算范围上的$digest自动重新呈现视图。

答案 1 :(得分:1)

无需刷新视图。只需使用$scope.pictures方法从splice中移除数据,然后将更新的数据推送到$scope.pictures,如:

$scope.pictures.push(updated_data);