2017-10-16 51 views
-1

用戶輸入值I具有多個輸入字段在不同標題: -如何把對象伊諾陣列時在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}。 有沒有辦法做到這一點?

+0

你可以對ng模型做一些改變嗎?使它像a.arr [我]會做到這一點很容易。如果這能起作用,我可以爲您提供完整的解決方案。 –

+0

@ Spidi'sWeb,不,我不想這樣做 –

回答

0

試試這個

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

如果您存儲數據,你將不得不存儲它喜歡:

a.arr=[]; 
//here you have to define object for each index before making keys of it. 
a.arr[i]={}; 
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]]; 
}; 

讓我知道如果你需要了解任何其他關於這一點。

最好的問候

+0

它會創建一個像這樣的對象數組: - [{a.arr.username:任何值,a.arr.userdob:任何值,a.arr .userpanNo:任何vaue},{a.arr.empname:任何值,a.arr.empdob:任何值,a.arr.emppanNo:任何vaue},{a.arr.dwname:任何值,a.arr。 dwdob:任意值,a.arr.dwpanNo:任意vaue}] –

+0

是 只需將其粘貼到控制檯並嘗試運行即可。它會工作。 –

+0

它沒有爲我工作 –