当用户在angularJs中输入值时,如何将对象推入数组

时间:2017-10-16 06:43:14

标签: javascript angularjs

我在不同的标题下有多个输入字段: -

<label>User</label>
  <input type="text" ng-model="a.arr.username" name="arr[0]"/>
  <input type="text" ng-model="a.arr.userdob" name="arr[0]"/>
  <input type="text" ng-model="a.arr.userpanNo" name="arr[0]"/>

<label>Employee</label>
  <input type="text" ng-model="a.arr.empname" name="arr[1]"/>
  <input type="text" ng-model="a.arr.empdob" name="arr[1]"/>
  <input type="text" ng-model="a.arr.emppanNo" name="arr[1]"/>

<label>Daily Workers</label>
  <input type="text" ng-model="a.arr.dwname" name="arr[2]"/>
  <input type="text" ng-model="a.arr.dwdob" name="arr[2]"/>
  <input type="text" ng-model="a.arr.dwpanNo" name="arr[2]"/>

我想以以下格式保存以上数据: - [{a.arr.username:any value},{a.arr.empname:any value},{a.arr.dwname:any value}]。但我得到的结构是: - {a.arr.username:any value,a.arr.empname:any value,a.arr.dwname:any value}。 有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

在存储数据的地方,您必须将其存储为:

a.arr=[];
//here you have to define object for each index before making keys of it.
a.arr[i]={};

答案 1 :(得分:0)

试试这个

 var arr=[]; arr.push({'a.arr.username':$scope.a.arr.username,{'a.arr.empname':$scope.a.arr.empname}})

答案 2 :(得分:0)

基本上,您希望将对象作为其属性的数组。我建议你保留代码,只需添加一个代码来创建另一个控制器属性,它将保存这些属性的数组。

要获取属性数组,下面的代码可以帮助您:

var x = {username: "any value", empname: "any value", dwname: "any value"};
var newArr = [];
var properties = Object.keys(x);
for(var i=0;i<properties.length;i++){
    newArr.push({});
    newArr[newArr.length - 1][properties[i]] = x[properties[i]];
};

如果您需要了解其他任何相关信息,请与我们联系。

最好的问候