2017-07-26 137 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这个解决方案很好,它是一个不同的,谢谢 –