簡體   English   中英

在angular js中向對象添加數組屬性

[英]adding an array property to object in angular js

我有一個名為user的對象:

它具有諸如user.nameuser.age e.tc之類的屬性。

現在,我需要通過ng-model將一個數組添加到名為subjects用戶對象中。

這是我在ng-repeat中所做的:

    <input type="text" ng-model="user.subjectname[$index]" 
  name="subject" ng-required="true" placeholder="Enter a subject name">

當我執行console.log(user.subjectname) ,它看起來像這樣:

在此處輸入圖片說明

現在,在此之后,我想執行以下操作:

<div ng-repeat="data in user.sujects">
                  <td>{{data}} </td>
                   </div>

但這行不通。

Try2:

在我從控制器調用的服務中,我嘗試了此操作,

        if(dataArray== null)
                var dataArray=[];

            console.log("scop.user.subjectname...................." + user.subjectname);
            for(var i in user.subjectname)
            {   dataArray.push(user.subjectname[i]) 
            }
            user.data=dataArray;

所以,如果我現在

 <div ng-repeat="data in user.data">
                      <td>{{data}} </td>
                       </div>

我什么也沒得到。

我可以得到一些指導來解決這個問題嗎?

就像我在上一個問題中告訴您的那樣 ,並在jsbin中進行了展示

您需要在對象語法中使用(key,val)以使這些值脫離user.subjectname

ng-repeat="(key, val) in user.subjectname" ng-bind="val"

如果需要將此對象轉換為數組:

$scope.arr = [];

Object.keys(user.subjectname).forEach(function (key) {
  arr.push(user.subjectname[key]);
});

然后,如果您需要輸出

ng-repeat="a in arr" ng-bind="a"

編輯:經過您的進一步解釋后,我假設此jsBin突出顯示了您所追求的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM