2015-10-25 107 views
1

角循環,我只是通過這個例子去網上的$的角度看,基本上碰到下面這個奇怪的語法:理解爲在NG-重複

 <select ng-model="countSelection" ng-options="n for n in [5,10,15,20]"></select> 

現在我已經熟悉for ..in循環,在原生的JavaScript,但什麼是ng-options="n for n in [5,10,15,20]"?有人可以解釋這一點嗎?我見過文檔HERE,有幾個相似的例子,但沒有什麼不一樣的,我對這個語法感到困惑,有誰能解釋一下嗎?

謝謝。

+0

閱讀正確的文檔https://docs.angularjs.org/api/ng/directive/ngOptions – charlietfl

+0

請通過接受答案或評論他們來澄清爲什麼你沒有接受任何問題還沒回答。 –

+0

沒有時間框架來接受答案。不要急於接受你的答案。這個問題沒有任何意義,可以開放討論。 –

回答

1

基本上它不是JavaScript,它是AngularJS特有的重複表達式。以下是文檔中的定義:

指示如何枚舉集合的表達式。

重複表達式有各種格式。 AngularJS編譯器能夠解析它們併爲循環範圍提供變量。

+0

可以提供文檔鏈接或示例。謝謝 –

+1

@TenaliRaman它在你發佈的頁面上。向下滾動到參數部分。 –

0

一個原因是它可以很容易地用於基於特定的鍵遍歷對象數組。假設你有以下數據:

$scope.arr = [ 
    {'key1': 1, 'key2': 4}, 
    {'key1': 2, 'key2': 5} 
] 

現在,在你的標記,你可以遍歷key1

<select ng-model="temp" ng-options="n.key1 for n in arr"> 

</select> 

以上key2

<select ng-model="temp" ng-options="n.key2 for n in arr"> 

</select> 

這可以確保您的ng-model持有至正確的鍵值。

0

是的,下拉菜單中有一些棘手的具體的ngOptions實現,實際上它被記錄爲here。長話短說:你有一個數組,你應該告訴Angular,它應該傳遞什麼值作爲這些選項的值。 例如,你有對象的數組:

myArr = [{id:1, description:'First'}, {id:2, description:'Second'}, ...] 

所以,如果你想使用領域ID作爲價值選擇的選項,您可以創建以下選擇:

<select ng-model="countSelection" ng-options="obj.id for obj in myArr"></select> 

這就是它!在你的情況下,你有一系列的數字,你想使用這個數字作爲你的選項的值。因此,我們可以把這種線NG選項=「N爲[5,10,15,20] N」如下:

請把數組的每個元素,並將其命名爲「N」 。請使用此'n'作爲我的選項的值。