2017-09-26 10 views
0

私の角プロジェクトにはmulti-select packageを使用しています。それは、私がうまく動作している私の反応形式モデルにバインドすることができます。Angular2 - マルチセレクト用データモデルのフォーム値を更新

私のコンポーネントの初期化時に、私は自分のモデルからの初期値を変数に格納しています。私は自分のページに複数選択ドロップダウンを与える "編集モード"を有効にすることができます。

変更(選択/削除)を取り消したい場合は、初期値を再設定する必要があります。

this.ruleAttributeForm.controls['AttributeValue'].setValue(this.initialValueInput, {emitEvent: true})

私はドロップダウンを開いたときただし、以前に選択された値がまださえドンかかわら選択でマークされ、モデルと入力ボックス自体を更新する、このような何かをしようとしました入力には現れません。

<ng-select formControlName="AttributeValue" [items]="valueOptions" [multiple]="true" bindLabel="Value" placeholder="Select one or more values" class="test"></ng-select>

この入力が選択された値はformControlNameから来ていると[items]から来るから項目を選択します。 .setValueはモデル/入力に対しては機能しているように見えますが、どの項目を選択できるかはリセットされていません(コントロール値をリセットする前に選択した項目が使用中とマークされています)。

フォームの値を更新する必要がある別の方法はありますか、これはプラグインの問題ですか?

答えて

1

docs 1として、itemsプロパティに渡されたリストvalueOptionsザ各要素はタイプ以下NgOptionに準拠している必要があり、

export interface NgOption { 
    [name: string]: any; 
    selected?: boolean; 
    disabled?: boolean; 
    label?: string; 
    value?: string; 
} 

それは任意booleanselected性質を有しています。したがってselectedプロパティを対応するboolean値をデフォルトの値としてvalueOptionsアレイの各要素に追加してから、formControlの値をリセットするときにもこのプロパティをリセットしてください。

関連する問題