从URL获取ID,使用Angular2未定义params

Get ID from URL, params is undefined using Angular2

本文关键字:Angular2 未定义 params 使用 URL 获取 ID      更新时间:2023-09-26

试图从URL中获取ID参数,但似乎我没有定义我的参数var。看不出哪里出了问题,所以也许有人可以帮忙!

代码

import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES, RouteParams, RouteConfig} from 'angular2/router';
import {OnInit} from 'angular2/core';
@Component({
  selector: 'view-movie',
  templateUrl : './templates/view-movie.tpl.html',
  directives: [ROUTER_DIRECTIVES]
})
export class ViewmovieComponent implements OnInit {
  public movie = {};
  public id = String;
  constructor(params: RouteParams){};
  ngOnInit() {
    this.id = params.get('id');
  }

}

假设在构造函数后面的代码块中插入params.get,如

import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES, RouteParams, RouteConfig} from 'angular2/router';
import {OnInit} from 'angular2/core';
@Component({
  selector: 'view-movie',
  templateUrl : './templates/view-movie.tpl.html',
  directives: [ROUTER_DIRECTIVES]
})
export class ViewmovieComponent implements OnInit {
  public movie = {};
  public id = String;
  constructor(params: RouteParams){
    this.id = params.get('id');
  }
  ngOnInit() {
    console.log(this.id);
  }
}

只需使用这一个

constructor(params: RouteParams){this.id = params.get('id');}
  ngOnInit() {console.log(this.id);}

或者这个

constructor(private params: RouteParams){}
  ngOnInit() {
    this.id = this.params.get('id');
    console.log(this.id);
  }

因为如果我们在没有声明类型的情况下初始化某个东西,那么我们必须在构造函数内访问,但如果我们要在构造函数外访问,那么必须使用this