2016-07-28 65 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得到妥善解决,请评论说, 。 –