2015-05-13 26 views
3

我有以下对象数组:如何在AngularJS中创建一个类似于对象数组对象的空对象?

$scope.users = [ 
    { 
     ID: "1", 
     Name: "Hege", 
     Username: "Pege", 
     Password: "hp", 
    }, 
    { 
     ID: "2", 
     Name: "Peter", 
     Username: "Pan", 
     Password: "pp" 
    } 
]; 

我需要创建与这样的空值的类似对象,

$scope.newUser = { 
    ID: "", 
    Name: "", 
    Username: "", 
    Password: "" 
} 

,这样我可以将其推到相同的阵列($scope.users.push($scope.newUser);) ,让它看起来像这样:

$scope.users = [ 
    { 
     ID: "1", 
     Name: "Hege", 
     Username: "Pege", 
     Password: "hp" 
    }, 
    { 
     ID: "2", 
     Name: "Peter", 
     Username: "Pan", 
     Password: "pp" 
    }, 
    { 
     ID: "", 
     Name: "", 
     Username: "", 
     Password: "" 
    } 
]; 

然而,阵列$scope.users不会总是有相同的阵列对象。我需要它,即使我的数组更改为不同的东西,例如,像这样的工作:

$scope.users = [ 
    { 
     SID: "pepe", 
     Name: "Peter", 
     School: "Primary School" 
    }, 
    { 
     SID: "hepe", 
     Name: "Hege", 
     School: "Junior School" 
    } 
]; 

我怎样才能做到这一点?

+0

你确定在阵列将与同一只对象结构体?反正angular不提供清理对象字段的方法,但是你可以简单的写你自己的函数 – Grundy

+0

你为什么要这样做?我知道这不是一个答案,但它似乎违反了我所说的好的编程。有一组东西包含未定义的东西闻起来。 –

回答

4

假设总有东西要模仿数组中,得到的第一个对象,循环键,使空白对象:

if ($scope.users.length) { 
    var defaultUser = $scope.users[0]; 

    $scope.newUser = {}; 
    for (var key in defaultUser) { 
     $scope.newUser[key] = ""; 
    } 

    $scope.users.push($scope.newUser); 
} 
+0

或者如果您的事物数量有限,则为其创建声明。否则,这是一样好。 –

+0

这就像一个魅力。非常感谢你! – Dishon

相关问题