我是Angular 2的新手,问题是如何从组件中触发单击HTML文件元素?
rankingFilter() {
this.RepsloaderShow = true;
this.reps = [];
var data = {
from: this.fromFilter,
to: this.toFilter,
user_search: this.user_search
}
this.http.post(CONSTANTS.baseApiUrl + 'reports/rankings_individuals', data)
.map(res => res.json())
.subscribe((data) => {
this.reps = data;
this.RepsloaderShow = false;
// Trigger click here
});
}
Run Code Online (Sandbox Code Playgroud)
HTML文件(在class ='rep'上单击事件)
<ul class="carousel-indicators section-nav">
<li class=" icon_0 icon active rep" data-target="#slideable" data-slide-to="0">
<span class='shh'>Reps</span>
<p style="display: none;">Reps</p>
</li>
<li class="icon_0 icon team" data-target="#slideable" data-slide-to="1">
<span class='shh'>Teams</span>
<p style="display: none;">Teams</p>
</li>
<li class="icon_0 icon award" data-target="#slideable" data-slide-to="2">
<span class='shh'>Class Ranks</span>
<p style="display: none;">Class Ranks</p>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
用于从主机元素调度
constructor(private elRef:ElementRef, private renderer:Renderer) {}
Run Code Online (Sandbox Code Playgroud)
用于从模板内的元素调度
<some-elem #target></some-element>
Run Code Online (Sandbox Code Playgroud)
@ViewChild('target') elRef:ElementRef;
Run Code Online (Sandbox Code Playgroud)
然后发送活动:
...
this.renderer.invokeElementMethod(this.elRef.nativeElement,
'dispatchEvent',
[new MouseEvent('click', { bubbles: true, cancelable: true })]);
Run Code Online (Sandbox Code Playgroud)