angular - 如何在 *ngFor 中设置唯一的模板引用变量? ( Angular )

标签 angular typescript

我在 *ngFor 循环中有一堆输入字段。文档说模板引用变量应该是唯一的。有没有办法像 #attendee-{{person.id}} 那样让它独一无二?

   <div *ngFor="let person of attendeesList">
       <input #attendee [ngModel]="person.name" (blur)="changeName(attendee.value)"/>
   </div>

(我知道可以选择执行 (ngModelChange)="changeName($event)" 但出于某些原因我需要改用 blur。具体来说,我希望模型在用户完成输入名称并且我们已经验证名称不为空且不重复之前更改。

最佳答案

您的模板引用变量已经是唯一的,因为您在嵌入式 View 范围内使用它:

<div *ngFor="let person of attendeesList">
  <input #attendee [ngModel]="person.name" (blur)="person.name = attendee.value"/>
</div>

Working Example

但您甚至可以省略模板引用变量,如下所示:

<div *ngFor="let person of attendeesList">
  <input [ngModel]="person.name" (blur)="person.name = $event.target.value"/>
</div>

关于angular - 如何在 *ngFor 中设置唯一的模板引用变量? ( Angular ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347854/

相关文章:

html - 数据表寻呼机的下一个按钮和后退按钮不起作用

Angular 2 : How is ngfor expanded

javascript - 拒绝 http.get catch block 中的 promise

javascript - 获取对象内的对象数组 - 尝试比较时出错 '[object Object]'

javascript - 命名空间类的 typescript 定义

typescript - 类型 'recaptchaLoaded' .ts(2339) 上不存在属性 'IReCaptchaComposition | undefined'

typescript - 尝试阻止订阅两次时出现 ObjectUnsubscribedError

dart - 带有变压器和路由器的Angular 2.0 Dart

Angular 组件中的 CSS 特性使用/深度/当类在组件外部时

typescript - 如何使用 jsx/tsx 渲染修复错误未知自定义 Vuetify 元素?