使用UI-路由器Angular1的stateparam值使用$ state.params未来
如何做ANgular2同样的事情
我想这样的this._uiRouter.globals.params.id
它的工作,但它不是一个妥善的解决办法,即使我使用webstrome编辑器,也显示出类似TS2339属性ID错误编辑器不上typeStateParams退出 ,
请帮我做的正确方法
使用UI-路由器Angular1的stateparam值使用$ state.params未来
如何做ANgular2同样的事情
我想这样的this._uiRouter.globals.params.id
它的工作,但它不是一个妥善的解决办法,即使我使用webstrome编辑器,也显示出类似TS2339属性ID错误编辑器不上typeStateParams退出 ,
请帮我做的正确方法
你可以从过渡导出对象获取状态参数,而配置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个文件:
这些天来它的simpeler。 在你的构造注入这样的:
import {StateService} from '@uirouter/core';
private stateService: StateService
然后,您可以通过这个变量来访问PARAMS:
this.stateService.params