2017-03-16 47 views
0

喜想過去按鈕一些值,請單擊「data.someid」我想在另一個按鈕這個「data.someid」點擊如何從一個函數傳遞數據到另一個component.ts,angular2

html 
--- 
<button (click)="click1(data.someid)"></button> 
<button (click)="click2()"></button> 

component.ts

click1(data){ 
    this.value = data 
} 
click2(){ 
    console.log(this.value) 
} 

現在檢索到的數據存儲到this.value的「CLICK1」,我想訪問它的另一個按鈕點擊,但console.log(this.value)顯示undefined

請別人告訴我如何訪問它。

+0

你確定this.value =函數中的數據賦值click1()是否正確?嘗試先在click1()函數中記錄該值。 – Yasin

+0

根據yor代碼函數2依賴於函數1,因爲this.value變量將在單擊函數1時分配數據。所以在這種情況下,如果您直接嘗試函數2,則值將會偏離路線undefined – mayur

+0

您可以添加'鍵入=「按鈕」'您的按鈕元素,請再試一次嗎? – echonax

回答

0

您應該添加type="button"到您的按鈕元素,

<button type="button (click)="click1(data.someid)"></button> 

否則,形式裏面的按鈕將默認爲type=submit像你提交表單。這就是爲什麼this涉及您的click範圍內的其他內容。

+0

感謝它工作很酷..如果我使用跨度而不是按鈕它不工作,任何其他修復? –

+0

@pradeepks它似乎與跨度工作正常。你可以重現它在這個plunker:http://plnkr.co/edit/gzD677GPvX3gM1bABNzg?p=preview – echonax

+0

嗨,我檢查其工作正常與跨度......謝謝。 –

0

你是否聲明變量爲類內的局部變量?並確保您在第二個按鈕之前單擊了第一個按鈕。

export class SomeClass { 
    value: any; 

    click1(data){ 
    this.value = data 
    } 
    click2(){ 
    console.log(this.value) 
    } 
} 
相關問題