2016-09-14 15 views
0

私はお互いの隣に入力フィールドとng-selectを持っています。どちらも同じデータをバックアップしています。選択項目には多数の項目があるので、必要な値がわかっている場合は入力項目を使用できます。モデルの変更に応じて選択を変更するにはどうすればよいですか?

しかし、入力フィールドの値を変更すると、データベース内のデータを更新してデータを再度取得するまで、ng-selectは変更されません。

ng-selectの値を変更すると、入力フィールドの値がすぐに変更されます。

ng-selectで下位モデルの変更を追跡して対応する方法はありますか?ここで

は私が持っているコードです:

 <div class="p0r2 textAlignCenter verticalAlignTop"> 
      <textarea class="h1r5 pl0r3 lh1r5 resizeNone w2r" 
         ng-change="phs.phrasesStatus = Status.Dirty; row.statusId = Status.Dirty" 
         ng-model="row.categoryId" 
         maxlength="3" size="3" 
         ng-required="true"></textarea> 
     </div> 
     <div class="p0r2 textAlignCenter verticalAlignTop" 
      ng-if="!phs.show"> 
      <select class="select" 
        convert-to-number 
        ng-change="phs.phrasesStatus = Status.Dirty; row.statusId = Status.Dirty" 
        ng-options="option.id as option.name for option in phs.phraseCategory.data" 
        ng-model="row.categoryId"></select> 
     </div> 

ここで活字体とのデータの種類だ:

interface IEnumServiceGetData { 
    data: IMapIdName[]; 
    dataPlus: IMapIdName[]; 
    dataMap: {}; 
    dataMapPlus: {}; 
    name: any; 
} 
interface IMapIdName { 
    id: number; name: string 
} 
+1

がここに罰金作品:http://plnkr.co/edit/WFbpjgf5azu3NANquC6j?p=previewタイプの代わりに「HEL」の「グー」、および選択自身を更新します。ですから、問題を再現するプランナーに完全なサンプルを投稿する必要があります。私の推測では、convert-to-numberが原因です:textareaのモデルは文字列です。 selectとモデルを共有する場合、selectのモデルも文字列でなければなりません。 –

+0

phs.phraseCategory.dataのデータ型はIMapIdNameです。そのことがわかっていれば – Alan2

+1

はい、それは説明します。数値をモデルとする入力フィールドを使用するには、テキストエリアではなく、 'を使用します。 –

答えて

1

おそらく、idの数値バージョンを使用しています。入力値を選択すると、文字列として格納されます。選択IDが数字の場合、一致しません。このように、選択IDの文字列バージョンを使用します。

$scope.options = [{id:"1", name:"A"},{id:"2", name:"b"},{id:"3", name:"c"}] 
関連する問題