如何使用angularJS删除列表对象

时间:2015-10-07 02:59:26

标签: javascript java json angularjs angularjs-scope

嗨我有一个Angular数据如下,

{"category":"B","check_histories":[{"date_created":"2015-10-07T10:35:38","field_name":"category","new_value":"B","old_value":null,"resource_uri":"","type":1,"username":"e1007476"},{"date_created":"2015-10-07T10:35:39","field_name":"check_name","new_value":"222","old_value":null,"resource_uri":"","type":1,"username":"e1007476"},{"date_created":"2015-10-07T10:37:25","field_name":"check_name","new_value":"22233","old_value":"222","resource_uri":"","type":0,"username":"e1007476"}],"check_name":"22233","date_created":"2015-10-07T10:35:38","date_modified":"2015-10-07T10:37:25","id":134,"is_valid":true,"resource_uri":""}

当我单击删除按钮时,如何从数据中删除除check_historie之外的所有数据。我试过了

$scope.clear = function(index) {
        $scope.final_data.checks.splice(index, 1);
    }; 

但它删除了整个数据,而不是所需的部分。对于AngualrJS来说,这是一个新手。请帮帮我。提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用Javascript"删除"如下:

delete $scope.final_data.checks.category;
// or,
delete $scope.final_data.checks['category'];
// or,
var prop = "category";
delete $scope.final_data.checks[prop];

在你的情况下,你必须遍历你的对象属性并删除它们:

angular.forEach($scope.final_data, function(value, key) {
   if(key !== 'check_histories') {
      delete $scope.final_data[key];
   }
}

答案 1 :(得分:0)

Underscore方式:

$scope.final_data.checks = _.pick($scope.final_data.checks, 'check_histories');