2016-07-28 50 views
0

我有一個顯示選項列表的多選標記,這些選擇標記將使用數組中定義的某個值進行初始化,但似乎ng-model沒有在我的情況下工作,這是我的代碼:ng-model不適用於選擇選項標記

<div ng-repeat="choice in choices"> 
      <select 
      ng-model="choice.competence.codeCompetence" 
      ng-options="competence.id as competence.titre group by competence.group for competence in competences track by competence.id"> <input type="text" ng-model="choice.niveauRequis"> Ans --- Selected option : {{choice.competence.codeCompetence}} 
      </select> 
     </div> 

這是一個的jsfiddle明白我的問題:

http://jsfiddle.net/qWzTb/3628/

我怎樣才能解決這個問題。

+1

你應該選擇的表達,或'as'或'軌道by',不能同時使用。從[** docs **](https://docs.angularjs.org/api/ng/directive/ngOptions):*「在同一個表達式中使用select as和track by時要小心。」*。另外,'ng-repeat'創建一個'子範圍',所以你可以在'ngModel'上遇到一些問題。始終使用'點規則'或'控制器作爲語法'。 – developer033

回答

0

請檢查該 Fiddle

我刪除track by competence.id,這似乎很好地工作。

你的competences數組有id屬性,所以你的track by是不需要的。

+0

多數民衆贊成在@ developer033 – henrybbosa

0

必須在as語法track by表達之間進行選擇。一起使用會帶來幾個問題。

docs

「使用選擇何時和在同一個表達式跟蹤由要小心。」

此外,ng-repeat創建child scope,這樣你就可以有一些問題ngModel。始終使用dot rulecontroller as syntax

DEMO

+0

謝謝,但似乎選擇標籤總是空的給定的演示 –

+0

你想通過「*總是空*」的意思是什麼? – developer033

+0

我的意思是選擇標籤沒有填充值:http://i.stack.imgur.com/KBTBU.png –