2016-07-27 39 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/ –