如何从 Ionic 2 中的按钮单击获取 ID?

How to get an ID, on click, from a button in Ionic 2?

我有一个按钮<button (click)="navToPage2($event)" #button block id="test">Click here</button>

当我点击它时,我想获得 id 属性:

navToPage2(event) {
    console.log(event.target.attributes);
}

我遇到的问题是,如果我点击它,我会得到 NamedNodeMap {0: class, length: 1} 而没有 'id'

但是,如果我右击边缘,我会得到 NamedNodeMap {0: block, 1: id, 2: class, length: 3}id

问题是因为此按钮的呈现方式:

<button block="" id="test" class="button button-default button-block">
    <span class="button-inner">Click here</span><ion-button-effect></ion-button-effect>    
</button>

span 有一些填充,如果我在 span 之外单击,我会得到 id

这里有一个示例https://codepen.io/patrioticcow/pen/XKzdXv?editors=1010。确保打开浏览器控制台查看结果

有什么想法吗?

您已经定义了模板变量 #button,因此您实际上可以传递它以获得正确的元素 ID。

<button (click)="navToPage2($event, button)" #button block="" id="test" class="button button-default button-block">
    <span class="button-inner">Click here</span><ion-button-effect></ion-button-effect>    
</button>

在你的方法中:

navToPage2(event, button) {
    console.log(button.id);
}

Working Plunker example