2016-01-01 173 views
1

我下面的教程,我有困難,瞭解一定的句子其中談到在角命名我的屬性時可能出現的問題:混淆術語

它悄悄地容忍所有財產訪問錯誤,包括不存在的父項上的嵌套屬性以及超出數組訪問權限。

混淆變量,以此來應對可變陰影

我的英語不夠好,知道寫的是什麼,但我真的不明白什麼是「不存在對父母嵌套屬性」和「走樣變量作爲應對可變陰影的一種方式「。我做了一些研究,但無法清楚地理解。

有人能給我一個明確的解釋嗎?

回答

1

假設您有:

obj : { 
    first: { 
     second: [1, 2, 3] 
    } 
} 

試圖做到這一點:

obj.nonexistent.prop // Nested property on nonexistent parent 
obj.first.second[1000] // Out of bound array access 

會拋出在JavaScript錯誤,但角度不拋出一個錯誤

混疊變量一種應對變陰影的方式,想象一下:

<div ng-controller="ItemsController"> 
    <div ng-repeat="item in items" ng-init="outerCount = $index"> 
    {{outerCount + 1}}. {{item.name}} 
    <div ng-repeat="item in item.items"> 
     {{outerCount + 1}}.{{$index + 1}}. {{item.name}} 
    </div> 
    </div> 
</div> 

here

在NG-重複中,變量$index改變到循環每次迭代的當前索引處指向。所以如果你有嵌套循環,你會失去對外部變量$index的引用。這是變數shadowing。要使用外部變量,可以使用ng-init並將其設置爲$index以外。現在,你有別名$index變量爲outerCount

希望這是明確的!

+0

謝謝,現在真的很清楚!但是我同時在你的回答中似乎回答了我的問題。 –

+0

@KévinDuguay我編輯了這篇文章來解釋你的第二個問題。 – UtsavShah

+0

你能否快速解釋一下嵌套的含義?我不完全相信我理解了這個概念。 –