我可以在catch
挂钩中添加model
方法吗?就像这样:
model(params) {
return this.store.findRecord('shop', params.slug)
.catch( () =>
this.transitionTo('welcome.shops.index'))
}
}
我的目标是在用户输入错误的slug
时对其进行路由。如果对我的欲望行为有更好的方法,请提出建议。非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
你被允许这样做,但我不认为这是最佳做法。让我们深入了解你在做什么:
this.store.findRecord('shop', params.slug)
返回一个Promise。 Promise.catch()
返回一个Promise(如果promise拒绝,则注册要执行的函数)。
所以你的模型钩子从findRecord
返回Promise,但是如果这个Promise拒绝,也会注册一个要执行的函数。
如果您的模型Promise拒绝,您应该使用Route error
event来执行逻辑。