我有一个显示页面,我希望在显示此页面之前确保数据可用。我的理解是在路由中使用resolve属性是最好的方法。但是使用ui-router我无法访问$ state.params中的属性。有没有办法解决这个问题,或者我应该只是查询控制器中的对象?我做了一个简单的plunkr来证明这个问题。 http://plnkr.co/edit/cSgExy7QOpjx7jEEV7v0?p=preview
答案 0 :(得分:2)
根据文档,您应该在决心中引用$stateParams
,而不是$state.params
。此外,Plunkr因为您正在注入您未包含在摘录中的服务(Tournament
)而被破坏。这很好用:
resolve: {
tournament: function($stateParams) {
console.log($stateParams) // Prints { tournament_id: 1 }
}
}
答案 1 :(得分:0)
似乎param对象的填充速度不够快。
如果您将警报包含在resolve函数中,并且超时为0毫秒,那么它似乎可以正常工作。
我没有任何使用角度ui路由器的经验,但我认为它与仍在处理的摘要周期有关,超时会强制警报等到摘要周期完成。