2015-07-13 126 views
1
<div class="form-group" data-ng-repeat="choice in choices"> 
    <input type="text" ng-model="user.subjectname[$index]" 
    name="subject" ng-required="true" placeholder="Enter a subject name"> 
    </div> 

由於我使用動態NG-重複,如果我用ng-model=user.subjectname,由於某些原因,輸入文本是在所有領域與創建此輸入字段,我搜索在互聯網上,發現ng-model="user.subjectname[$index]"正在使用,它的工作。在NG-模型動態創建屬性

不過,我無法理解

  1. 什麼確切含義。 ?

2.如果是數組或對象。 ?

  1. 它在控制檯中顯示爲對象。 ?

  2. 如果是對象,爲什麼它有索引?

而且,我們可以反對使用這種格式瓦爾斯遍歷:

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

爲什麼它不工作?

neither did ng-repeat="subject in user.subjectname"{{subject}} 

請問我可以請指示,因爲我現在很困惑它。

+1

只需添加'{{user.subjectname | json}}'在ngRepeat之外,你會看到Angular爲你填充數組。 – dfsq

+1

這裏使用的第一種方法是ng-model = user.subjectname,您將爲所有文本輸入附加相同的模型。並在任何文本框中進行更改將更新模型,從而更新所有文本框。但是使用$ index您正在創建獨立模型陣列並附加到輸入框。 –

回答

1

這是一個數組。當你這樣做的時候:

var test = []; console.info(typeof test);// You would get object as arraysa re also object in Javascript. 

在這裏,你傳遞給選擇主體名稱數組的索引選擇$索引。這很好。與一些數據的填充後主旨名稱,可以使用納克重複像

ng-repeat = "subject in user.subjectname" 

此外初始化user.subjectname = [];在控制器

+0

我以爲我可以做到這一點,應該工作,但user.subjectname給出了這樣的事情{0:'Math',1:'sCience} –

+1

在控制器中初始化user.subjectname作爲一個空數組。 – binariedMe

0
<form class="idea item"> 
<div ng-repeat="(key, value) in items[0]" > 
    <label>{{key}}</label> 
    <input type="range" ng-model="items[0][key]" min="0" max="15"/> 
</div> 
<input type="submit" ng-click="save()" /> 
<pre>{{items | json}}</pre> 

變種應用= angular.module( '我的應用內',[],函數(){ })

app.controller('AppController', function ($scope) { 
    $scope.items = [{"red": 14, "green": 12, "orange": 1, "yellow": 11, "blue": 9}]; 
})