2017-05-28 109 views
2

值按鈕上單擊事件ID和名字我有一個按鈕如何獲得離子2角2

<button ion-button icon-left name="0x10000011 (click)="AppService.sendNotify($event)" id="0x10000011" value=1> 
    <ion-icon name="camera"></ion-icon> 
    CAM Icon 
</button> 

當我點擊它,我想獲得id屬性,我的服務sendNotify功能。

public sendNotify(data) { 
    var method = 'SCAN_BUTTON'; 
    var name = data.target.name; 
    var id = data.target.id; 
    var value = data.target.value - 0; 
    console.log("#$#$%$%^$%^#$%^#$%",method, name, value); 
} 

在這裏,我沒有得到的按鈕idname。相反

#$#$%$%^$%^#$%^#$% SCAN_BUTTON undefined NaN. 

任何人都可以幫助我找到我的錯誤嗎?

+0

爲什麼不把你的名字/ ID作爲函數的參數? –

+0

檢查我的答案 –

回答

3

您正在考慮將離子成分ion-button作爲基本html button標記。

它實際上是一個角度分量。檢查here

其內部HTML的樣子:根據

<span class="button-inner"> 
    <ng-content></ng-content> 
</span> 
<div class="button-effect"></div> 

的按鈕,你點擊發送標籤的ID和姓名與event.The點擊區域可能是button標籤span

您應該簡單地將該值作爲參數發送。

<button ion-button icon-left name="0x10000011" (click)="AppService.sendNotify($event,'0x10000011','0x10000011')" id="0x10000011" value=1> 
    <ion-icon name="camera"></ion-icon> 
    CAM Icon 
</button> 

A plunker to try

+0

感謝您的答案。這解決了我的問題 – ndh

1

您可以使用下面的代碼

<button id="ar" name="some" (click)="clicked($event)"> CLICK ME </button> 


clicked(event){ 
    console.log(event.srcElement.id) 
    console.log(event.srcElement.name) 

    } 

LIVE DEMO

+0

我試圖使用secElement,但我得到的結果與以前相同。是因爲離子嗎? – ndh

+0

你傳遞給方法的參數是'$ event'? – Aravind

+0

@Araving我在我的角2 Web應用程序中使用相同的代碼,它在那裏工作。那裏的事件攜帶按鈕id名稱和值。它不工作離子應用程序。 – ndh

0

你的代碼在總體上是好的獲取值,我也建議使用,而不是srcElement目標。

在你的代碼只是錯過關閉name屬性,嘗試把它改成這樣:

<button ion-button icon-left name="0x10000011" (click)="AppService.sendNotify($event)" id="0x10000011" value=1> 
    <ion-icon name="camera"></ion-icon> 
    CAM Icon 
</button> 

我希望這將解決您的問題。

+0

感謝您的快速回答。其我的錯字,它不起作用 – ndh

+0

如果它仍然無法正常工作,可否請您提供一個Plunker? – mbppv

+0

我正在使用離子如何爲此創建一個運動員? – ndh