我需要在angular里面使用onclick触发事件回调
angular里面的写法为: 事件名(){}
onclick写法为:function 事件名 () {}
那我如何在angular里面使用onclick触发事件呢
其实我想要实现的是这种效果,因为没有找到使用angular来实现的合适方法,所有改用js的写法了。有更好的angular实现方法嘛????
有点没太懂你的意思.
你想要触发angular的click事件?你的click事件方法在你的代码里面,你直接调用就好了?
===
其实本来click就可以满足你的onclick需求,你可以说出你的需求,我告诉你怎么搞.至于怎么使用onclick这种模式,可以这样做
<a #linkA>test</a>
export class WelcomeComponent implements AfterViewInit {
@ViewChild('linkA')
linkA: ElementRef<any> | any = null;
ngAfterViewInit(): void {
this.linkA.nativeElement.addEventListener('click',() => {
console.log('test');
});
}
}
====虽然其实我应该建议你改为使用angular的方式来实现你的轮播图,但是如果你不这么做,可以这样
<div class="test">
<li name="123" age="223">a</li>
<li name="123" age="456">b</li>
<li name="123" age="789">c</li>
<li name="123" age="1232">d</li>
</div>
<!--假设这就是你js生成的各种节点-->
export class WelcomeComponent implements AfterViewInit {
document: Document;
constructor(private renderer2: Renderer2, @Inject(DOCUMENT) document: Document) {
this.document = document; //这个document就是原生的document,你可以做任何事情了
}
ngAfterViewInit(): void {
const list = this.document.querySelectorAll('.test li');
list.forEach(node => {
this.renderer2.listen(node, 'click', event => {
const name = node.getAttribute('name');
const age = node.getAttribute('age');
console.log(node, event, name, age);
});
});
}
}