【问题标题】:emberjs desired page wont open on "right click open in new tab"emberjs 所需页面不会在“右键单击在新选项卡中打开”时打开
【发布时间】:2015-06-25 02:16:01
【问题描述】:

所以这里是带有

的 javascript 类 emberjs 代码
export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}

这是带有html文件代码的车把:

<a href {{action "showUser"}}>{{username}} {{user-status user currentUser=currentUser}}</a>

该应用在 Ruby on Rails 上。

有一个主题页面和一个用户个人资料页面。这样做是打开一个弹出用户徽章并允许用户单击用户名并将他们重定向到该用户个人资料页面。单击此按钮可以正常工作,并将用户从他们所在的此主题页面重定向到用户页面。但我希望用户右键单击,在新标签中打开。这只会打开相同的主题页面。

研究了ember后发现第一段代码中的transitionToRoute显示模型很可能是序列化成URL,最终使用了rout的序列化钩子。为什么我认为这是原因?我不知道!我也尝试了 replaceRoute 方法,但效果相同。帮助? :)

【问题讨论】:

  • 因为您正在调用一个动作,但实际上并没有链接到任何东西。

标签: javascript ruby-on-rails serialization ember.js handlebars.js


【解决方案1】:

您可以使用帮助器 {{#link-to 'user' userModel}},其中 'user' 和 userModel 是路由的模型,这将创建一个可以在新选项卡中打开的链接。

浏览器无法路由 Ember 操作,因为它们不是链接,它们是 ember 在 JavaScript 中使用的内部路由,控制器中的 transitionToRoute 和路由中的 transitionTo 也是如此。

更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多