Angular2数据绑定动态传递变量

时间:2018-05-28 15:14:37

标签: angular data-binding angular5

使用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"

但显然没有成功。

欢迎任何帮助。

3 个答案:

答案 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'"

谢谢大家的帮助。