【发布时间】:2018-06-12 15:58:53
【问题描述】:
我正在尝试从另一个组件执行一个函数(这两个组件不是同级组件)。我的猜测是我需要使用 @Output 和 eventEmitter 来完成此操作或创建 Service 并订阅 Observable 以共享相同所有组件中的数据(我知道如何传递消息(字符串),但我不知道如何执行函数)。我不确定从哪里开始。我正在尝试从 function2 执行 function1。谁能帮我解决这个问题? 请提供一个 plunker。这是我的项目的样子:
src
|__app(FOLDER)
|__home(FOLDER)
| |
| |__home.component.ts
| |______function2(){
| What do I need to put in here to execute function1?
| }
|
|__products(FOLDER)
|
|__tools(FOLDER)
|
|____tools.component.ts
|____function1(){
alert("I'm inside function 1!!");
}
如您所见,我有一个具有 function2 的文件 home.component.ts 和一个具有 function1 的文件 tools.component.ts,所以任何想法如何执行函数 1 来自函数 2 ?
【问题讨论】:
-
您是对的,您需要从函数 2 发出一个事件,该事件在
tools.component中被监听,然后调用函数 1。您可以尝试的另一个选项是在组件之间共享服务它承载了一个可观察的。订阅 observable,然后从函数 2 更新,运行函数 1。 -
@Zze 你能分享你的想法作为解决方案吗?谢谢!
-
对此进行测验,如果还不清楚,请告诉我。这不是您需要的 100%,但我将在此处的答案中使用类似的事件。 (我现在没有时间提出完整的答案)...stackoverflow.com/questions/38222475/…
-
使用共享服务
-
如果您的组件之间没有父子关系,则必须在高级模块上提供服务
标签: angular typescript angular-components