如何读取Angular2 $ stateParms价值?(How to read $statePar

2019-09-30 11:22发布

使用UI-路由器Angular1的stateparam值使用$ state.params未来

如何做ANgular2同样的事情

我想这样的this._uiRouter.globals.params.id

它的工作,但它不是一个妥善的解决办法,即使我使用webstrome编辑器,也显示出类似TS2339属性ID错误编辑器不上typeStateParams退出

请帮我做的正确方法

Answer 1:

你可以从过渡导出对象获取状态参数,而配置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() {
  }
}

从修改的plunker https://ui-router.github.io/tutorial/ng2/hellosolarsystem#live-demo : https://plnkr.co/edit/IVGx0p9lQr1yKqgwZT4X

注意2个文件:

  1. state.ts
  2. 组件/ person.ts


Answer 2:

这些天来它的simpeler。 在你的构造注入这样的:

import {StateService} from '@uirouter/core';

private stateService: StateService

然后,您可以通过这个变量来访问PARAMS:

this.stateService.params


文章来源: How to read $stateParms value in Angular2?