我有这段代码:
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值。
这个问题可能是什么原因?
答案 0 :(得分:5)
这里的问题是我的ViewComponent被加载了两次。这就是构造函数被调用两次的原因:
在我的select patientid, min(dt), max(dt), count(*)
from (select t.*,
sum( (case when dt > prev_dt + interval '7 day' then 1 else 0 end)
) over (partition by patientid order by dt) as grp
from (select t.*,
lag(dt) over (partition by patientid order by dt) as prev_dt
from t
) t
) t
group by patientid, grp;
中定义路由时。这里:
app.module.ts
在我的app.component.html中 - 我添加了RouterModule.forRoot([
{ path: '', component: ViewComponent }
标记。