6

我是 Angular 2 框架的新手。我很感激任何帮助。

我在角度 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()

4

1 回答 1

12

您可以使用删除pristine状态

this.formData.controls.value.markAsDirty();

目前的可能性非常有限。另请参阅https://github.com/angular/angular/issues/4933

于 2016-05-10T08:09:38.637 回答