【发布时间】:2017-08-02 00:31:24
【问题描述】:
主要组件:
HTML
<event-thumbnail *ngFor='let event1 of events' #thumbnail [event2]="event1" (eventClick)='handleEventClicked($event)'>Hello</event-thumbnail>
<button class='btn btn-primary' (click)="thumbnail.alertFoo()">alert id</button>
<button class='btn btn-primary' (click)='thumbnail.handleClickMe()'>click me!</button>
事件-缩略图组件
alertFoo(){
alert("id called");
}
handleClickMe(){
this.eventClick.emit('foo');
alert('click');
}
在上面的代码中,我无法在使用 *ngFor 时使用缩略图 -> 模板变量的按钮,即。不会通过缩略图调用 alertFoo 和 handleClickMe()。我也尝试将它包装在 div 中,但它仍然不起作用。它仅在我使用 *ngFor 将整个代码包含在 div 中时才有效,即还有显示不需要的多个按钮的按钮。我想了解 ngFor 的工作原理是否有一些解决上述问题的方法,我希望重复事件但按钮只显示一次。
【问题讨论】:
-
这些方法到底是什么?前缀
thumbnail指的是什么?不太清楚,这就是我问的原因。您提供很少的代码来尝试解决此问题。最好是如果您可以在 plunker 中重现该问题... :) -
@AJT_82 我认为上面的代码是自我解释的......如果你知道 angular2 #thumbnail 是模板变量,它指的是事件缩略图模板我试图调用 alertzfoo() 和 handleClickMe () 方法通过模板变量 thumbnail 存在于 event-thumbnail 组件中,当我将所有内容封装在一个 div 中时,该方法在上述代码中不起作用我看到我的页面中填充了多个按钮,因为它也成为 ngFor 的一部分。
-
不,代码不是不言自明的,但现在更清楚了,因为您提供了这些方法的位置,即在 event-thumbnail 组件中。
-
@AJT_82 好的,我想现在清楚多了....?
-
是的,所以我为你准备了一个答案:)
标签: javascript angularjs node.js angular angular2-template