angular - Angular 6 - 使用服务传递参数
问题描述
我正在通过使用服务来处理带有参数步骤的 Angular 6 应用程序。
在构造函数方法中,我调用以下服务(app.component.ts):
constructor(private userService: UserService) {
this.menuService.getDataRegister(this.aliasUser)
.subscribe(
data => {
if(data == 1) {
this.userService.setPage(1);
this.page = this.userService.getPage();
console.log('page1: ', this.page);
} else {
this.userService.setPage(0);
this.page = this.userService.getPage();
}
}, // Bind to view
error => {
// Log errors if any
this.processError(error);
});
console.log('page2: ', this.page);
}
}
console.log "page1" 的值向我显示了预期的内容,但是 console.log "page2" 的值,我得到未定义并且该值应该保留,因为它是相同的变量并将其加载到服务的答案 ok 中.
然后当我尝试在另一个组件中获取它时,它也会加载未定义(home.component.ts):
this.page = this.userService.getPage();
console.log('page: ', this.page);
可能是什么问题呢?谢谢,
解决方案
执行时console.log('page2: ', this.page)
,结果this.menuService.getDataRegister
尚不可用。你的 console.log 的执行顺序是:
- console.log('page2:', this.page);
- console.log('page1:', this.page);
您应该只在订阅中使用 this.page
推荐阅读
- selenium - Selenium 找到了元素(锚),但仍然说元素不可见?
- https - 使用 yocto 构建工具时如何修复错误 501?
- amazon-s3 - 如何指定 S3 存储桶区域 SAM 模板
- database - NiFi - 100 个表的 QueryDatabaseTable - 通用解决方案
- delphi - Delphi TOAuth1Authenticator如何设置Realm
- html - Bootstrap 导航栏不倒塌
- bootstrap-4 - Bootstrap 4 - site.time 功能?
- python - 如何获取共享最小属性值的对象子列表?
- reactjs - 使用更具体的路线时将组件添加到页面
- templates - 在 otrs 中:如何在模板中将动态字段复选框显示为选中的复选框