Ionic2 离子2:事件发布/订阅不工作
用户登录,其登录信息设置为本地存储,并转发至仪表板页面。 我要做的就是一旦用户登录,用户被转发到仪表板,我想用登录的用户详细信息更新滑动菜单 在仪表板页面的构造函数中,我发布了如下事件-Ionic2 离子2:事件发布/订阅不工作,ionic2,Ionic2,用户登录,其登录信息设置为本地存储,并转发至仪表板页面。 我要做的就是一旦用户登录,用户被转发到仪表板,我想用登录的用户详细信息更新滑动菜单 在仪表板页面的构造函数中,我发布了如下事件- let userinfo = this.storagehelper.getStorageItem("userinfo"); this.event.publish("app:userLoggedIn", userinfo); 在app.component.ts中,我订阅了这样的活动- this.even
let userinfo = this.storagehelper.getStorageItem("userinfo");
this.event.publish("app:userLoggedIn", userinfo);
在app.component.ts
中,我订阅了这样的活动-
this.event.subscribe("app:userLoggedIn", userObject => {
console.warn("Listening to published event");
this.setMenuUsers(userObject);
});
setMenuUsers(userinfo){
this.LoginUserEmail = userinfo.UserName;
this.LoginUserName = userinfo.EmployeeName;
this.LoginUserCompany = userinfo.CompanyName;
}
问题
菜单未更新,订阅事件根本不起作用。有谁能帮我做错事吗?试试这个方法-
TS:
似乎您想从其他页面更新变量。在这个问题中看我的问题可能是一个愚蠢的问题,但为了以防万一,在您将用户重定向到登录页面之前,
app.component.ts
文件中的代码行this.event.subscribe(…)
,是放置在登录页面的吗?console.warn(“侦听已发布的事件”)代码>正在打印吗?@sebaferras LoginPage是登录页,该页没有滑动菜单。Loginpage重定向到仪表板页面,该页面发布事件。但我猜app.component.ts是在登录页面呈现之前执行的。所以首先执行的是订阅事件。@suraj否没有打印任何内容,subscribe
不起作用
async saveUser () {
let userinfo = await this.storagehelper.getStorageItem("userinfo");
this.event.publish("app:userLoggedIn", userinfo);
}