2015-11-07 64 views
0

以下是我的示例:http://jsfiddle.net/w2Ltohsq/

對通過console.log記錄的輸入的任何更改(和焦點)事件。所以,點擊任何輸入。

我希望控制檯輸出,如:

Object {index: 1, 1: Object} 

,但我得到:

Object {index: 1, $index: Object} 

所以$index評估和未評估幾乎相同的地點。

ng-repeat="item in List track by index"ng-repeat="(i, item) in List"沒有幫助。

編輯:謝謝大家,所有的答案都是正確的,我用一個工作小提琴upvoting答案。

回答

2

您正在定義屬性,名稱爲$index。如果你想將財產進行命名的$index的價值,你必須用括號標記:

input[$index] = {item: item} 

Updated fiddle

+0

咄,我試了一下問這樣的''輸入[$指數] [ '項目'] = item''之前,並沒有工作。在這種情況下,確定js會像Perl一樣在動態創建所需的結構,因此它也是一些角度特性。 – skaurus

2
{ index: $index, $index: { item: item } } 

是一個JavaScript對象常量,而第二$index是的一個(字段)此對象。鍵不會在對象字面上評估。值是。

正如在JavaScript中,如果你寫

var i = 22; 
var obj = {i : i}; 

你就會有一個名爲i一個鍵一個對象,它的值是22碼,相當於

var obj = {'i' : i}; 

我也很難理解爲什麼你有這個getTopScope()函數。

+0

我相信'getTopScope()'方法是爲了避免需要走'$ parent'鏈 - 不使用對象作爲模型的結果,'ng-model'指向它的屬性。這是「如果你的模型名稱中沒有一個點,你做錯了._」https://www.youtube.com/watch?v=ZhfUv0spHCY&feature=youtu.be&t=32m51s) – JAAulde

+0

@JAAulde你大概是正確的。但實際上,在模型中有一個點(好吧,它是一個括號,但它有相同的效果):'input [$ index]'。所有的OP需要將'$ scope.input = [];'添加到控制器。 –

相關問題