私はAngular 2フレームワークが初めてです。助けていただければ幸いです。
angular 2に通常のコンポーネントがあります:
import {FORM_DIRECTIVES, FormBuilder, Validators} from 'angular2/common';
export class TestComponent {
public values = ['value1', 'value2', 'value3', 'value4'];
}
FormBuilder
次に、コンストラクター関数に注入します。
@Inject(FormBuilder) public fb
HTML には次のマークアップが含まれます:
<input [(ngModel)]="formData.title" type="text" class="form-control" ngControl="title">
タイトルと説明がうまく機能します。しかし、ブートストラップ ドロップダウンを追加しましたが、フォーム要素はありません。
<div *ngFor="#value of values" (click)="onValueChanged(value)" class="dropdown-item">{{value}}</div>
問題は、html マークアップにモデルが含まれていないことです。この問題を解決しようとした方法は、関数を作成することですonValueChanged
onValueChanged(value){
this.formData.controls.value.updateValue(value);
this.formData.value = value;
console.log(this.formData.pristine) //Still true :(
}
this.formData.pristine
ドロップダウンが変更された後に変更されないため、これらの行は両方とも機能していません。
今のところ私は更新する方法を考えFormBuilder
ています、いくつかの方法があればいいでしょう、例えばthis.fb.update()