javascript - 需要帮助在 Angular 2 中将变量传递给对话框

标签 javascript html angular

尝试将用户上次访问的页面中的 URL ID 传递到我可以在对话框中引用的服务。

发行者.service.ts

import { Injectable, EventEmitter } from '@angular/core';
import { Observable, of } from 'rxjs';
import { BehaviorSubject } from 'rxjs';

@Injectable()
export class IssuerService {

private urlidSource = new BehaviorSubject<string>('');
currentUrlid = this.urlidSource.asObservable();
public onChange: EventEmitter<string> = new EventEmitter<string>();

  constructor() {
  }

  changeUrlid(urlid: string) {
    this.currentUrlid = of(urlid);
    this.onChange.emit(urlid);
  }


}

具有我想要的 URL ID 的页面 (dashboard.component.ts)

import { IssuerService } from './../../issuer.service';
import { ActivatedRoute } from '@angular/router';
import { Router } from '@angular/router';
urlid: string;
  constructor(
    private route: ActivatedRoute,
    private router: Router,
    private issuerService: IssuerService,
    public dialog: MatDialog
  ) {}

newUrlid() {
  this.issuerService.changeUrlid(this.route.snapshot.paramMap.get('id'));
  console.log(this.urlid);
}

  ngOnInit() {
    // Get URL ID
    this.issuerService.onChange.subscribe(urlid => this.urlid = urlid);
    this.newUrlid();
}

我想读取其中的值的组件:

import { ActivatedRoute } from '@angular/router';
import { Router } from '@angular/router';
import { IssuerService } from './../../issuer.service';

    urlid: string;

    constructor(
      private route: ActivatedRoute,
      private router: Router,
      private issuerService: IssuerService,
      public dialog: MatDialog
    ) {}

  ngOnInit() {
    this.issuerService.onChange.subscribe(urlid => this.urlid = urlid);
console.log(this.urlid);
console.log(this.urlid);
console.log(this.urlid);

  }

所有 3 个 console.logs 返回为未定义。任何帮助将不胜感激。

最佳答案

您需要将 console.log 放入 subscribe

   this.issuerService.onChange.subscribe(urlid => {
           this.urlid = urlid;
           console.log(this.urlid);
   });

关于javascript - 需要帮助在 Angular 2 中将变量传递给对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50657388/

相关文章:

javascript - 背景图像在第一次滚动时跳转

JavaScript - 如何使继承成为可能

html - 在pdfmake中如何从字符串打印html数据

javascript - 在 Oracle APEX v4.2.2 中通过 Ajax 调用 Oracle 函数以进行现场验证

javascript - 类定义中的 Extjs itemId

php - 如何在div中加载CKEditor?

javascript - 通过 chrome 扩展将监听器附加到 AJAX 事件

javascript - Jquery 菜单移位/重叠 div 部分图像

javascript - 动态地将类添加到数组中来自 *ngFor 的内容

angular - 如何将 FirebaseUI 正确配置到我的 Angular 项目中?