简体   繁体   English

Angular 2 * ngFor和动态字段

[英]Angular 2 *ngFor and dynamic field

Here a little code: 这里有一些代码:

<div *ngFor="let field of fields">
  <div>
    <label>{{field}}</label><input name="item.field" [(ngModel)]="item.field">
  </div>
</div>

"fields" is a list of string equals to each field of "item" object "item" is an object with several property. “字段”是等于“项目”对象的每个字段的字符串列表。“项目”是具有多个属性的对象。

i want to generate a dynamic form using this simple *ngFor and write something like: 我想使用此简单的* ngFor生成动态表单,并编写类似以下内容的内容:

"item.field" “ item.field”

Am i doing it wrong ? 我做错了吗?

Thx you ! 谢谢你!

只需使用:

<label>{{item[field]}}</label><input name="item[field]" [(ngModel)]="item[field]">

Try using square bracket notation: 尝试使用方括号表示法:

<div *ngFor="let field of fields">
    <div>
        <label>{{field}}</label><input name="item[field]" [(ngModel)]="item[field]">
    </div>
</div>

Try this code mate: 试试这个代码伴侣:

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="customersCtrl"> 

<table>
  <tr ng-repeat="x in fields">
    <td>
      <!-- field name -->
      {{x.field}}:
      <br>
      <!-- fields -->
      <input type="text" name="x.f" placeholder="{{x.hint}}">

      <br>

   </td>

  </tr>
</table>
<br>

<input type="submit" name="b1" value="submit">

</div>

<script>

var app = angular.module('myApp', []);

app.controller('customersCtrl', function($scope) 

{

$scope.fields = 
[{field:'name',hint:'enter name'},{field:'address',hint:'enter address'},{field:'phone', hint:'entercontact number'}];

});


</script>

</body>
</html>

OUTPUT: 输出:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM