2016-07-28 4 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を取り出して、これが正常に動作するようです。

の配列にはidというプロパティがありますので、track byは不要です。

+0

これは正しい@developer033 – henrybbosa

0

あなたはas構文またはtrack by表現の間で選択する必要があります。それらを一緒に使用するといくつかの問題が生じます。

docsから:

「などの選択を使用する場合は注意してくださいと同じ式にすることにより追跡します。」あなたはngModelでいくつかの問題を持つことができますので、

はまた、ng-repeatは、child scope作成します。 dot ruleまたはcontroller as syntaxを必ず使用してください。

DEMO

+0

ありがとうございます。しかし、特定のデモでselectタグが常に空であるようです –

+0

"*は常に空です*"とはどういう意味ですか? – developer033

+0

私は、選択タグに値が入力されていないことを意味します:http://i.stack.imgur.com/KBTBU.png –

関連する問題