2016-07-28 63 views
3

嘿,大家我想知道如何從狀態使用Angular 2,TypeScript & ui-router獲得狀態參數。我試着審查新的文檔,但他們似乎沒有太多的文檔ng2 ui-router。Angular 2,TypeScript&ui-router - 如何獲取狀態參數

下面我添加了我的component.ts以供參考。任何幫助將不勝感激。

import {Component} from '@angular/core'; 
import {HTTP_PROVIDERS} from '@angular/http'; 
import {UIRouter} from 'ui-router-ng2/router'; 

@Component({ 
    selector: 'Detail', 
    template: require('./detail.html'), 
    providers: [HTTP_PROVIDERS] 
}) 

export class Detail { 
    constructor(private uiRouter:UIRouter) { 
    console.log('uiRouter ', this.uiRouter.globals.params); 
    } 
} 

在角1 I會做如下:

(function() { 
    'use strict'; 

    angular 
    .module('private') 
    .controller('Controller', Controller); 

    function Controller($state) { 
    var vm = this; 
    console.log($state.params.studentID); 
    } 
})(); 

再次任何建議將不勝感激。

回答

2

我能解決我被做具有狀態PARAM問題如下:

import {Component} from '@angular/core'; 
import {HTTP_PROVIDERS} from '@angular/http'; 
import {UIROUTER_DIRECTIVES} from 'ui-router-ng2'; 
import {UIRouter} from 'ui-router-ng2/router'; 

@Component({ 
    selector: 'Detail', 
    template: require('./detail.html'), 
    directives: [UIROUTER_DIRECTIVES], 
    providers: [HTTP_PROVIDERS] 
}) 

export class Detail { 
    public detailParam: any; 

    constructor(private uiRouter:UIRouter) { 
     this.detailParam = this.uiRouter.globals.params; 
     console.log('state params: ', this.detailParam); 
    } 
} 

但進一步的研究之後,我發現UI的路由器角2在這裏更好的文檔:https://ui-router.github.io/ng2/

貌似處理狀態則params的正確方法是用

import {Transition} from "ui-router-ng2" 

並採用

trans.params().detailID 

我是不是能夠得到trans.params()在這個特殊的時刻工作,但至少我找到了一個臨時解決方案,更好的文檔,以找到合適的解決方案。

+0

現在連我都同樣的懷疑,如果u得到妥善解決,請評論說, 。 –