使用Angular(5)我正在显示一个电子邮件地址列表,为每个地址提供表单输入。表单输入来自子组件,因此我的代码是:
<div *ngFor="let email of user.emailAddresses; let i = index">
<form-input label="Email Address:"
name="EmailAddresses[i].EmailAddress"
[(ngModel)]="user.emailAddresses[i].emailAddress"
ngDefaultControl></form-input>
</div>
我的问题出在'name'属性中。我希望索引'i'作为一个数字传递,虽然它传递给我自己(字母)。正确传递索引的方法是什么?
我尝试过类似的事情:
name="EmailAddresses["+'i'+"].EmailAddress"
但显然没有成功。
欢迎任何帮助。
答案 0 :(得分:0)
您可以在迭代中使用email
:
<div *ngFor="let email of user.emailAddresses; let i = index">
<form-input label="Email Address:"
[name]="email.EmailAddress"
[(ngModel)]="user.emailAddresses[i].emailAddress"
ngDefaultControl></form-input>
</div>
答案 1 :(得分:0)
通过阅读你的评论,我认为你需要的是:
<div *ngFor="let email of user.emailAddresses; let i = index">
<form-input label="Email Address:"
[name]="'EmailAddresses[' + i + '].EmailAddress'"
[(ngModel)]="user.emailAddresses[i].emailAddress"
ngDefaultControl></form-input>
</div>
这会将EmailAddresses[0].EmailAddress
等作为值
答案 2 :(得分:0)
我设法找到了解决问题的方法。正如我提到的EmailAddresses [i] .EmailAddress是一个字符串而不是模型 - 我想要这个确切的文本。虽然,我需要动态更新索引。
到目前为止,解决方案是:
[name]="'EmailAddresses['+i+'].EmailAddress'"
谢谢大家的帮助。