transitionToRoute重新加载模型

3
如何过渡到一个路由并告诉Ember重新加载该路由的模型?
我的用例: 我正在访问一个“约会”页面。在我取消约会后,我需要转到“/schedule”路由,显示除我刚刚取消的约会之外的所有约会。
当我使用“transitionToRoute”时,被取消的约会仍然在列表中。然后我必须重新加载浏览器页面才能看到新列表。

1
为什么不直接从集合中删除取消的预约?这可能比重新加载整个集合更便宜。 - Kingpin2k
2个回答

4
我完全同意@Kingpin2k在评论中提出的建议,即删除该约会。如果由于某种原因这对你不起作用 - 只需过渡到路由而不提供任何模型(省略第二个参数)或提供一个可以查找模型的id,该id是一个整数或字符串。然后将调用Routemodel钩子。
文档中得知:

如果传递的是字面量(例如数字或字符串),则它将被视为标识符。在这种情况下,将触发路由的模型钩子


如果你提供了一个字符串,你必须设置序列化挂钩吗?我按照指南的语法进行操作,但似乎不起作用。 - ahnbizcad

2

如果您正在使用transitionToRoute传递模型

在您要转换的模型路由中,只需使用setup controller挂钩重新加载模型即可。

setupController: function(controller, model) {
    model.reload();
    controller.set('model', model);
},

model.reload() 是您在应用程序中随时刷新模型的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接