我有一个组件,它实际上是一个模态对话框。当我完成对话框并按下“确定”按钮时,我想停留在我打开对话框的停留页面上。这并不困难。
但问题是对话框更改了数据(我是通过REST调用获取数据的),因此我需要刷新已经使用的路由以反映数据更改。
因为我是从一个组件调用它的,所以我没有Route
,所以不能调用route.refresh()
。
我试着去拿路由器:this.set('router', Ember.getOwner(this).lookup('router:main'));
并且确实转换到了同一页:_this.get('router').transitionTo('my-route')
但是由于路由没有改变(我只打开了一个对话框),所以transitionTo
没有被触发!
是否有办法强制触发transitionTo
或刷新我所在的页面?
谢谢你,谢谢你
2条答案
按热度按时间rjzwgtxy1#
首先,通过将routing service注入到组件中,可以轻松地获得当前路由名称。
然后,您可以获取当前的route示例并应用其
refresh
方法:nxowjjhe2#
为此,在最近路线或应用路线文件中定义
refreshCurrentRoute
方法。从您的组件中,您需要调用
refreshCurrentRoute
操作。您可以使用ember-route-action-helper或通过传递闭包操作。