Ale*_*nov 4 javascript angular2-forms angular2-formbuilder angular
我是Angular 2框架的新手.我感谢任何帮助.
我在角2中有通常的组件:
import {FORM_DIRECTIVES, FormBuilder, Validators} from 'angular2/common';
export class TestComponent {
public values = ['value1', 'value2', 'value3', 'value4'];
}
Run Code Online (Sandbox Code Playgroud)
然后我注入FormBuilder构造函数:
@Inject(FormBuilder) public fb
Run Code Online (Sandbox Code Playgroud)
HTML包含下一个标记:
<input [(ngModel)]="formData.title" type="text" class="form-control" ngControl="title">
Run Code Online (Sandbox Code Playgroud)
标题和描述非常有用.但我添加了bootstrap下拉列表,它没有任何表单元素.
<div *ngFor="#value of values" (click)="onValueChanged(value)" class="dropdown-item">{{value}}</div>
Run Code Online (Sandbox Code Playgroud)
所以,问题是html标记不包含任何模型.我试图解决这个问题的方法是创建函数onValueChanged
onValueChanged(value){
this.formData.controls.value.updateValue(value);
this.formData.value = value;
console.log(this.formData.pristine) //Still true :(
}
Run Code Online (Sandbox Code Playgroud)
这两行都不起作用,因为this.formData.pristine下拉列表更改后没有更改.
现在我正在考虑如何更新FormBuilder,例如,有一些方法可以this.fb.update()
您可以pristine使用删除状态
this.formData.controls.value.markAsDirty();
Run Code Online (Sandbox Code Playgroud)
目前的可能性非常有限.另见https://github.com/angular/angular/issues/4933
| 归档时间: |
|
| 查看次数: |
5737 次 |
| 最近记录: |