Angular 2 ViewChild NgModel设置新值

时间:2018-10-01 09:38:58

标签: angular

<input type="text" class="form-control" name="referenceNo/LIKE" placeholder="{{'referenceNo' | translate}}"
                  ngModel>

 @ViewChildren(forwardRef(() => NgModel)) inputs: QueryList<NgModel>;

 for (let input of this.inputs.toArray()) {
   //change value input(NgModel Ref)
 }

还尝试更改元素ref中的值。

@ViewChild(forwardRef(() => NgForm)) form: NgForm;

for (let elRef of this.form.element.nativeElement) {
  elRef.value = "New Value" // Doesnt change value
}

请帮助我处理来自组件类的表单inut值。

1 个答案:

答案 0 :(得分:0)

组件:

public foo: string;

setNewValue(newValue) {
  this.foo = newValue;
}

模板:

<input [(ngModel)]="foo" class="form-control" placeholder="{{'referenceNo' | translate}}">

基本上,您将如何将类属性(如果使用AOT必须为public)绑定到ngModel伪指令,那么用户输入该属性后所做的任何更改都会反映出来在组件中使用,因为它使用[()]语法进行“双向绑定”。一次绑定可以执行[ngModel]="foo",但是在您的情况下,您不需要这样做。

我建议您阅读一下ngModel的工作方式,并考虑使用FormBuilder的反应式表单。一般而言,使用表单时功能更强大,更易于使用。