我在项目中使用@ uirouter / angular,并且有许多状态,例如:
export let MAIN_STATES: Ng2StateDeclaration[] = [
{ name: 'state1', url: '/state1', component: State1Component },
{ name: 'state2', url: '/state2', component: State2Component },
...
];
自然在我拥有的app.component中
<ui-view></ui-view>
根据路径加载适当的状态组件。问题是,在@uirouter文档和示例中,有很多有关解析函数,与状态输入配置相关的转换等信息,但是我找不到如何从状态组件本身(State1Component用于访问转换)的信息(特别是我需要url)例)。声明可以通过名称来访问参数:
@Input param1;
我尝试使用url进行操作,但未定义。 怎么做?
答案 0 :(得分:0)
到目前为止,我已经找到了获取URL的方法。在状态声明中:
export let MAIN_STATES: Ng2StateDeclaration[] = [
{ name: 'state1', url: '/state1', component: State1Component,
resolve: [{
token: 'transition',
deps: [Transition],
resolveFn: (transition) => transition
}]
},
...
];
在State1Component中:
export class State1Component implements OnInit {
@Input() transition;
url: string;
constructor() { }
ngOnInit() {
this.transition.promise.then((res) => this.url = res.url);
}
}
请告诉我是否有更好的方法。