动态生成角度为2的输入字段类型并设置字段类型

nan*_*ots 1 html5 angular

我是angular 2的新手,并尝试根据使用angular 2的模型动态生成一堆输入字段。一些字段是密码字段。我想让输入字段键入密码。我写了这样的东西:

<div *ngFor="let field of connector.type.configFields">
    <label>{{field.name}}</label>
    <input [(ngModel)]="field.value" />
</div>
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果field.name是password,我想输入字段密码,我正在考虑在输入中添加类似的内容

<div *ngFor="let field of connector.type.configFields">
    <label>{{field.name}}</label>
    <input [(ngModel)]="field.value" *ngIf="field.name =='Password'" type="password"  />
</div>
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做,我的所有其他非密码字段都不会被渲染。仅密码字段被呈现。我做错了什么(我对angular2很陌生)

Gün*_*uer 6

这可能有效,但据我所记得,type不支持动态设置(但可能值得尝试):

<input [(ngModel)]="field.value" [type]="field.name === 'Password' ? 'password' : 'text'"/>
Run Code Online (Sandbox Code Playgroud)

这是安全的选择:

<input [(ngModel)]="field.value" *ngIf="field.name === 'Password'" type="password"  />
<input [(ngModel)]="field.value" *ngIf="field.name !== 'Password'" type="text"  />
Run Code Online (Sandbox Code Playgroud)

如果field.name'Password',则添加第一个,否则将第二个输入添加到DOM。