【问题标题】:Angular ngmodel ignores value attribute in a form inputAngular ngmodel 忽略表单输入中的值属性
【发布时间】:2020-06-18 14:03:46
【问题描述】:

我对 Angular 有点陌生,**我想要实现的是**我需要一个表单中的输入框,该表单具有从父组件获得的预先填充的值,我是使用模板驱动的表单,所以我尝试的是

<input
                  type="text"
                  id="empinput1"
                  class="form-control"
                  name="empid"
                  ngModel
                  [value]="data['empid']"
                />

注意,数据是我从父组件得到的输入

通常,onsubmit 会给出与输入框的 name 属性相关的输入值,因此我可以发送到 API 但这给了我一个空白输入框,而不是填充由 [value] 字段设置的值 非常感谢任何帮助:D

【问题讨论】:

    标签: javascript angular forms angular-forms


    【解决方案1】:

    你应该使用ngmodel:

    从域模型创建一个 FormControl 实例并将其绑定到表单控件元素。

    所以,对于你的情况(更多信息here):

    <input type="text" id="empinput1" class="form-control" name="empid" [(ngModel)]="data['empid']"/>
    

    如果您想在表单中使用,可以查看角度示例here

    import {Component} from '@angular/core';
    import {NgForm} from '@angular/forms';
    
    @Component({
      selector: 'example-app',
      template: `
        <form #f="ngForm" (ngSubmit)="onSubmit(f)" novalidate>
          <input name="first" ngModel required #first="ngModel">
          <input name="last" ngModel>
          <button>Submit</button>
        </form>
    
        <p>First name value: {{ first.value }}</p>
        <p>First name valid: {{ first.valid }}</p>
        <p>Form value: {{ f.value | json }}</p>
        <p>Form valid: {{ f.valid }}</p>
      `,
    })
    export class SimpleFormComp {
      onSubmit(f: NgForm) {
        console.log(f.value);  // { first: '', last: '' }
        console.log(f.valid);  // false
      }
    }
    

    【讨论】:

    • 嘿,谢谢伙计,这行得通但是有什么办法可以禁用输入框并仍然在提交时发送数据,因为在传递 disable=true 时输入未提交
    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    相关资源
    最近更新 更多