首页 > 解决方案 > 将名称动态分配给文本框

问题描述

我正在运行一个循环来生成文本框,并且我希望将循环变量附加到生成的文本框的名称属性中。请找到以下代码以供参考:

<tr ng-repeat="t in [0,1,2,3,4,5,6,7,8,9]" 
    id="row" {{t}} 
    ng-if="true === isShow[emp.indexOf(empId)][t]">

  <td>
    <input type="text" 
            maxlength="20" 
            class="w3-input w3-border w3-round" 
            name="textVal" 
            ng-pattern="regexText" 
            ng-model="empKeys[emp.indexOf(empId)][t]" 
            style=" width: 100%;height:30px;" 
            placeholder="please enter val here......">
    <div ng-messages="employees.textVal.$error">
      <div ng-message="pattern">Invalid Text</div>
    </div>
  </td>

等等...

我希望循环变量t和值emp.indexOf(empId)也应该附加在上面创建的文本框中,以便每个文本框都有一个唯一的名称,我可以ng-messages唯一地应用它。

标签: javascriptangularjshtml

解决方案


首先对于字符串值喜欢nameid{{t}}里面的属性值引号

id="row{{t}}"

name="textVal{{t}}"
// or
name = "{{'textVal' + t}}"

您需要对父属性使用[]对象表示法ng-messages

ng-messages="employees['textVal' + t].$error"

推荐阅读