2016-12-29 5 views
0

がstateparam値がANgular2

で同じことを行うにはどのように$ state.params

を使用して来ている私が試しました

それは作業、しかし、そのない適切な解決策、でも私は編集者もTS2339プロパティIDのようなエラーを示すことtypeStateParamsに出ていない 、webstromeエディタを使用しています、

ています

は私が適切な方法を行う助けてください

+0

あなたが '' this._uiRouter.stateService.params'からparams'をチェックしていますか? – ranakrunal9

+0

私はそれを慰めるときはい、私は1つのオブジェクトStateParams {ID:「1」}取得していますあなたに必要なのparamsがそれに来た場合、私はこれを印刷する場合、あなたはあなたのparams値 –

+0

を._uiRouter.globals.params.StatePams.idそれは未定義 – ranakrunal9

答えて

2

URL状態設定している間、あなたは移行エクスポートオブジェクトから状態パラメータを取得することができます。

import {Transition} from "ui-router-ng2"; 
... 
export const personState = { 
    name: 'person', 
    url: '/people/:personId', 
    component: Person, 
    resolve: [ 
    { 
     token: 'stateParams', 
     deps: [Transition], 
     resolveFn: (trans) => trans.params() 
    } 
    ] 
}; 

をあなたに、コンポーネントコード:

import {Component, Input} from '@angular/core'; 
import {UIROUTER_DIRECTIVES, Transition} from 'ui-router-ng2'; 

@Component({ 
    directives: [UIROUTER_DIRECTIVES], 
    template: ` 
    <h2>stateParams</h2> 
    <pre>{{ stateParams | json }}</pre> 
`}) 

export class Person implements OnInit { 
    @Input() stateParams; 

    ngOnInit() { 
    // here you will have all passed state params 
    console.log(this.stateParams); 
    } 

    constructor() { 
    } 
} 

https://ui-router.github.io/tutorial/ng2/hellosolarsystem#live-demoから修正plunker:https://plnkr.co/edit/IVGx0p9lQr1yKqgwZT4X

つのファイルへ

注意を払う:

  1. state.ts
  2. コンポーネント/ person.tsは
+0

@componentのUIRouter_DIRECTIVE宣言にアクセスできません。 –

+0

あなたがUIROUTER_DIRECTIVESを意味する場合、それらはUI-ルータ-NG2モジュールからインポートされます:import {UIROUTER_DIRECTIVES、トランジション}から 'UI-ルータ-NG2(私は2つの輸入品との私の答えを更新しました');作業plunker確認してください:https://plnkr.co/edit/IVGx0p9lQr1yKqgwZT4X?p=preview、押して「ピープル」のリンクをして、すべての人をクリックして - 状態paramsがconsol.loggedと、画面に印刷されています。 – Andriy

関連する問題