【发布时间】:2016-12-20 19:36:22
【问题描述】:
我有这个代码:
import { Component } from '@angular/core';
import { ViewService } from './view.service';
import { Router, ActivatedRoute, Params } from '@angular/router';
@Component({
selector: 'app-view',
templateUrl: './view.component.html',
styleUrls: ['./view.component.css'],
providers: [ViewService]
})
export class ViewComponent {
constructor(viewService: ViewService, private route: ActivatedRoute) {
this.route.params.map(params => params['id']).subscribe((id) => {
console.log("id: " + id);
});
}
}
我已经为我的代码订阅了运行参数。 事情是 - 订阅函数被调用 两次 - 第一次 - id 未定义。 第二次 - 存在 id 值。
此问题的原因可能是什么?
【问题讨论】:
-
你为什么在
this.route.params.map(....中使用map? -
只是映射值而已。可以删除。但并没有真正改变问题
-
你有没有发现这个问题?我遇到了同样的事情
-
@cgatian 是的,我确实解决了这个问题,并在下面的答案中添加了我的解决方案。尝试检查您是否在 html/routing 中调用了两次 ctor
-
感谢您发布答案。我发现我的问题是由使用冷可观察对象并订阅两次引起的。
标签: angular