Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 带有数字路由的ngOnInit_Angular_Typescript_Angular2 Routing - Fatal编程技术网

Angular 带有数字路由的ngOnInit

Angular 带有数字路由的ngOnInit,angular,typescript,angular2-routing,Angular,Typescript,Angular2 Routing,我有一个组件,我需要为像/1、/2、/3等数字路由渲染它 (其中编号为:id) 在我的组件中,我声明了ngOnInit代码 ngOnInit(){ alert(); } 当第一次时间路由更改警报触发时,但对于其他路由更改,它不会。我想知道为什么?如果组件已经加载,您应该订阅更改 如果组件已经加载,您应该订阅更改 您应该从ActivatedRoute服务中可观察到的params中获取id参数。您可以按如下方式执行此操作: //组成部分 import { Component, OnIni

我有一个组件,我需要为像/1、/2、/3等数字路由渲染它 (其中编号为:id)

在我的组件中,我声明了ngOnInit代码

ngOnInit(){
   alert();
}

第一次时间路由更改警报触发时,但对于其他路由更改,它不会。我想知道为什么?

如果组件已经加载,您应该订阅更改


如果组件已经加载,您应该订阅更改


您应该从
ActivatedRoute
服务中可观察到的
params
中获取
id
参数。您可以按如下方式执行此操作:

//组成部分

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params }   from '@angular/router';

constructor(
  private route: ActivatedRoute      
) {}

ngOnInit(): void {
  this.route.params.subscribe((params: Params) => {
    console.log(params['id']);
    // alert();
  });
}

您应该从
ActivatedRoute
服务中可观察到的
params
中获取
id
参数。您可以按如下方式执行此操作:

//组成部分

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params }   from '@angular/router';

constructor(
  private route: ActivatedRoute      
) {}

ngOnInit(): void {
  this.route.params.subscribe((params: Params) => {
    console.log(params['id']);
    // alert();
  });
}

太好了,谢谢!我有一个问题-如果我在你的代码中从警报中删除注释,如果我的路径(比如说)是/5或/10或其他什么。当我使用F5按钮刷新页面时,页面上会显示“ReferenceError:alert未定义”
alert
不是JavaScript的一部分,它是web浏览器提供的
窗口
对象的一部分,因此我认为它不存在于
订阅
上下文中,因为它不起作用,所以效果很好-谢谢!我有一个问题-如果我在你的代码中从警报中删除注释,如果我的路径(比如说)是/5或/10或其他什么。当我使用F5按钮刷新页面时,它会说“ReferenceError:alert未定义”
alert
不是JavaScript的一部分,它是web浏览器提供的
窗口
对象的一部分,因此我认为它不存在于
订阅
上下文中,因此它不起作用