javascript - Angular 4 - 使用 Angular 的 *ngFor 在 HTML 上打印唯一的动态值

标签 javascript html angular

因此,我收到了客户端的一项任务,即使 div 元素循环可拖动。为了实现这一点,我使用了 angular2-draggable使之成为可能。

它适用于尚未循环的单个 div,如下所示:

<div ngDraggable [handle]="DemoHandle" class="card">
  <div #DemoHandle class="card-header">I'm handle. Drag me!</div>
  <div class="card-block">You can't drag this block now!</div>
</div>

但问题是,如何将此代码放入 Angular 中的 *ngFor 循环中(也许就像下面看到的代码一样)?

<div *ngFor="let myValue of myValues" [handle]="{{myValue.id}}">
   <div #{{ myValue.id }} >{{ myValue.title }}</div>
</div>

这里的问题是,这个 [handle]="DemoHandle"#DemoHandle (我正在谈论 DemoHandle 值)都需要是唯一的。但我无法打印类似于下面代码的唯一值:

<div *ngFor="let myValue of myValues">
   <div [attr.id]="myValue.id" >{{ myValue.title }}</div>
</div>

我该如何解决这个问题?

最佳答案

模板引用变量在封闭 View 中是唯一的。 *ngFor 指令为每个项目创建嵌入 View ,以便模板引用变量在那里是唯一的。

所以只需尝试以下操作:

<div ngDraggable *ngFor="let item of [1,2,3]" [handle]="DemoHandle">
  <div #DemoHandle class="card-header">I'm handle {{item}}. Drag me!</div>
  ...
</div>

<强> Ng-run Example

关于javascript - Angular 4 - 使用 Angular 的 *ngFor 在 HTML 上打印唯一的动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51239543/

相关文章:

javascript - 使用预乘 Alpha 读出 FBO

javascript - 改变多个元素的样式

angular - 如何拥有一个可以容纳任何组件的侧边栏?

html - 调整窗口大小时对齐方式改变

javascript - 喜欢按钮不发布在我的墙上

css - 当行悬停在 ag-grid 中时,在单元格中呈现附加信息

angular - 从 Angular2 应用程序发送 http post 请求时如何启用 CORS

javascript - 5 秒后删除一个 div

javascript - Hammer.js 中 panend 和 pancancel 的区别?

html - 内有图像的内容分隔符