如何为输入元素添加名称值

时间:2018-06-01 06:38:21

标签: angular5 angular-forms

我正在循环数据,从数据中,我将名称值添加到输入字段中,但根本没有设置。这是什么问题?

我的表单模板:

<form novalidate name="myForm">
  <div ng-show="myForm[addVas.name].$error.pattern">Error will come </div>
  <div class="form-group">
    <input type="text" [(ngModel)]="addVas.input" [attr.disabled]="addVas.disabled ? '' : null " name="{{addVas.name}}" ng-pattern="/^[0-9]/" (blur)="addAdnlVasAfterInput(addVas)" placeholder="Provide value of shipment"
      class="form-control">{{addVas.name}} <!--getting value here-->
  </div>
</form>

当用户输入而不是编号进入包机时,我没有抛出错误。怎么解决?

现在我已将name字段更新为[name]="addVas.name",但我不确认发送的名称,除非我收到错误消息

2 个答案:

答案 0 :(得分:1)

Angular版本之间存在一些混淆。 ng-show应该是* ngIf或[隐藏]反向逻辑,ng-pattern是[pattern]。 [attr-disabled]可以[禁用]等。模式/ ^ [0-9] /不允许超过1位,我不确定这是你的目标。如果使用属性作为模式表达式,则使用[pattern] =&#34; property&#34;:

以下是我的建议:

     <form #myForm>
        <input type="text" [(ngModel)]="addVas.input" 
             [disabled]="addVas.disabled" [pattern]="addVas.pattern"
             [name]="addVas.name" #input="ngModel">
        <div *ngIf="input.errors && (input.dirty || input.touched)" >
            <div [hidden]="!input.errors.pattern">
                Should be a number
            </div>
        </div>
    </form>

Demo

答案 1 :(得分:0)

属性无法执行插值。 您需要使用属性绑定来设置属性值。

试试这个:

[name]="addVas.name"

而不是

name= "{{addVas.name}}"