我有两个嵌套路线,projects
和projects/project
。每当我打开project
时,我都希望刷新projects
路线。
我所知道的是在setupController
挂钩期间调用控制器功能(最终会在refresh
路由中调用projects
)。像这样:
// project route
setupController: function(controller, model) {
this.controllerFor('projects').send('search');
controller.set('model', model)
}
// projects controller
actions: {
search: function() {
// do other things
this.send('refreshModel');
}
}
// projects route
actions: {
refreshModel: function() {
this.refresh();
}
}
问题在于,当调用refresh
函数时,它不仅刷新当前路由,还刷新所有子路由,这意味着将再次执行此setupController
挂钩,创建此无限循环。
有没有办法让Ember刷新当前路线,忽略它的孩子?
谢谢。