【发布时间】:2018-03-06 23:10:53
【问题描述】:
情况:
在我的 Ionic 2 应用程序中,我有一个简单的登录,该表单包含在右侧菜单中。您单击标题中的右侧图标 - 将出现带有登录表单的菜单。
登录代码在 app.component 内部,登录视图是 app.html。 成功登录会将一个布尔全局变量 - loginState - 设置为 true。
目标是所有其他组件 - 导入全局变量 - 都可以知道登录状态。
问题是 - 成功登录后,我需要看到更改立即反映在主页组件上,但事实并非如此。
例如,主页上的某些内容应在您登录后立即可供您使用。
代码:
这是我在一个名为 global.ts 的单独文件中设置全局变量的地方,然后我将其导入其他组件:
export var global = {
loginState : false
};
app.component:
这是我在成功登录后导入全局变量并将其设置为 true 的应用组件:
import {global} from "./global";
loginSubmit()
{
var email = this.loginForm.value.email.trim();
var password = this.loginForm.value.password.trim();
this.userService.submitLogin(email, password)
.subscribe((response) => {
if(response.result == 1)
{
global.loginState = true;
this.menu.close();
}
}, (error) => {
console.log(error);
});
}
问题:
为了处理全局变量上的更改立即反映在其他组件上,应该采取什么方法?
能否从 app.component 调用 homePage 组件方法?
谢谢!
【问题讨论】:
标签: angular ionic-framework ionic2