Javascript 使用“余烬模式”对话框在余烬中设置路由模式

Javascript 使用“余烬模式”对话框在余烬中设置路由模式,javascript,ember.js,modal-dialog,ember-cli,Javascript,Ember.js,Modal Dialog,Ember Cli,我想创建可路由模式。为此,我知道我必须在父路由中创建嵌套路由才能工作。类似于这样 Router.map(function() { this.route('posts', { path: '/' }, function() { this.route('show', { path: '/posts/:post_id' }); }) 在这个“秀”路由是可路由模式,当用户移动到post/id时,它会打开一个模式。这很酷,我能够做到。我面临的问题是,我有一个组件顶部导航栏,它是静态的,包

我想创建可路由模式。为此,我知道我必须在父路由中创建嵌套路由才能工作。类似于这样

Router.map(function() {
  this.route('posts', { path: '/' }, function() {
    this.route('show', { path: '/posts/:post_id' });
  })
在这个“秀”路由是可路由模式,当用户移动到
post/id
时,它会打开一个模式。这很酷,我能够做到。我面临的问题是,我有一个组件顶部导航栏,它是静态的,包含一个通知下拉图标。下拉菜单包含一个选项,应该打开一个模式框来显示图像。它与fb完全类似通知。现在我已经给出了一个打开图像模式的操作。这很好。但是当右键单击并尝试打开图像模式时,它会出错。我可以通过使用routable模式来解决这个问题。现在我有三个路径

路由器.js

Router.map(function() {
  this.route('myprofile',{path:'/mystudio'});
  this.route("usrprofile",{path:'/usrprofile/:id'});
  this.route("feed",path:'/feed'})
});

现在我可以为image modal创建一个新的路由。但是在这里,它将离开当前路由并移动到指定的路由。我不希望这样。它应该在当前路由中打开,当用户右键单击时,它应该移动到指定的路由并打开一个modal对话框。我希望这些功能与facebook完全相同。我应该如何实现这一点。谢谢提前。

除非有充分的理由说明图像模式必须基于路由,否则我认为您最好的做法是将操作从导航栏组件发送到父路由,并在那里打开一个模式,将模式传递到图像的URL以显示

在本例中,您唯一要放弃的是在图像打开时复制URL,然后使用您复制的URL访问同一图像

如果这很重要,那么您确实有充分的理由使用基于路由的模式,在这种情况下,您应该查看(此选项由Ember community slack组中的@alexspeller建议)