2016-07-27 63 views
0

尝试从URL获取ID参数,但是好像我没有定义我的参数var。无法看到我出错的地方,所以也许有人可以帮忙!从URL获取ID,使用Angular2获取参数不明确使用Angular2

代码

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'); 
    } 



} 

回答

0

是假设被插入在代码块中的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); 
    } 

} 
0

简单地使用任一此一个

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

+1

最好的办法是订阅ActivatedRoute.queryParams 你可以看看这个例子:https://modewagon.wordpress.com/2017/09/12/access-url-with-params-angular2/ –