gpt4 book ai didi

angular - Ionic 事件在延迟加载模块之间无法正常工作

转载 作者:太空狗 更新时间:2023-10-29 19:33:31 25 4
gpt4 key购买 nike

因为我已经创建了一个 ionic 应用程序,具有基本的延迟加载实现。举个例子,假设我的应用包含 2 个延迟加载 页面,Page1Page2

所以在 page1.ts 的构造函数中,我发布了一个名为 hello 的事件,并且在 page2.ts 的构造函数中,我已经订阅了该特定事件。

我的应用以 Page1 开头。

但是在运行该应用程序后,我发现我的事件没有在直接从 Page1 的构造函数发布事件 hello 时被订阅。你能帮我解决这个问题吗,这就是为什么我的订阅方法(在 Page2 构造函数内)没有监听来自 Page1 的已发布事件。

示例代码:

page1.ts(应用以此开头)

constructor(public events: Events) {
this.events.publish('hello', 'some data');
console.log('Published');
}

page2.ts

constructor(public events: Events) {
this.events.subscribe('hello', (data) => {
// This isn't working in case of lazy-loading
console.log('subscribed to hello with data', data);
});
}

一旦我的应用程序启动,只有 Published 登录到控制台。之后什么也没有发生。但是根据我对ionic events的理解,Page2的subscribe方法在该事件发布后应该也能正常工作。不是吗?请帮我解决这个问题。

最佳答案

您的 Page2 延迟加载,因此尚未创建。

Ionic Events 为您发布的每个事件创建一个列表。这包含一个回调列表,每当您订阅该事件时,都会在其中添加您的回调函数。事件发布后,列表中的回调将被调用。

当您在页面 1 发布时,如果您的页面 2 尚未加载,则不会调用回调,因为它当时不在列表中。

关于angular - Ionic 事件在延迟加载模块之间无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com