2017-07-26 165 views
-1

我有三個組成部分:父(P)兩個孩子(C1)(C2) (他們是P成分的兒童和他們沒有父模板嵌套) 它看起來像如何從孩子傳遞變量孩子Angular2

<c1-component></c1-component> 
<c2-component></c2-component> 

我有一個變量myVarC1(號),我想減少和增加在C2組件中,並將此變量的新值返回到C1(所以,我想傳遞的不是函數,而是變量)。我怎麼能通過這個變量從C1C2? 我想在沒有共享服務的情況下解決這個問題。

+0

可以嘗試像。 (out)表示使用事件發射器的輸出參數。 #temp2是一個模板引用變量。在組件子2中創建組件變量var。 – ashley

回答

1

您可以使用EventEmitter將變量從child1發送到父級。將其捕獲爲父代中的輸入,然後將其傳遞給選擇器中的child2。

兒童1:

import { Output } from '@angular/core'; 
@Output() testVariable = new EventEmitter(); 

捕捉內親和在父HTML發射:

<c2-component [testVariable]="testVariable"></c2-component> 

兒童2:

import { Input} from '@angular/core'; 
@Input() testVariable; 
+0

請解釋爲什麼這是downvoted?它是我自己的解決方案中的代碼。謝謝 – Wilcko

+0

我沒有downvote,但我相信這是因爲你回答了一個被標記爲重複的問題,你可以閱讀如何處理重複問題:[如何處理重複問題](https:// meta。 stackexchange.com/questions/10841/how-should-duplicate-questions-be-handled) – Alex

+0

@Wilcko這個解決方案很好,它是一個不同的,謝謝 –