首页 > 解决方案 > 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);

可能是什么问题呢?谢谢,

标签: angular

解决方案


执行时console.log('page2: ', this.page),结果this.menuService.getDataRegister尚不可用。你的 console.log 的执行顺序是:

  1. console.log('page2:', this.page);
  2. console.log('page1:', this.page);

您应该只在订阅中使用 this.page


推荐阅读