Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “所需页面不会在”上打开;右键单击“在新选项卡中打开”;_Javascript_Ruby On Rails_Serialization_Ember.js_Handlebars.js - Fatal编程技术网

Javascript “所需页面不会在”上打开;右键单击“在新选项卡中打开”;

Javascript “所需页面不会在”上打开;右键单击“在新选项卡中打开”;,javascript,ruby-on-rails,serialization,ember.js,handlebars.js,Javascript,Ruby On Rails,Serialization,Ember.js,Handlebars.js,下面是带有 export default Ember.Controller.extend({: .... .... .... .... showUser() { this.replaceRoute('user', this.get('user')); this.close(); } 这是带有html文件代码的把手: export default Ember.Controller.extend({: .... .... .... .... showUser() { this.repl

下面是带有

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}
这是带有html文件代码的把手:

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}
<a href {{action "showUser"}}>{{username}} {{user-status user currentUser=currentUser}}</a>

该应用程序基于RubyonRails

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}
有一个主题页面和一个用户配置文件页面。这样做的目的是打开一个弹出的用户徽章,允许用户单击用户名,并将其重定向到该用户配置文件页面。单击此按钮可以正常工作,并将用户从其所在的主题页面重定向到用户页面。但我希望用户右键单击,在新选项卡中打开。这只会打开相同的主题页面

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}

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

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

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}
浏览器无法路由Ember操作,因为它们不是链接,它们是Ember在JavaScript中使用的内部路由,同样适用于控制器中的
transitionToRoute
,以及路由中的
transitionTo

export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}

更多信息

因为您正在调用操作,而不是实际链接到任何内容。
export default Ember.Controller.extend({:
....
....
....
....
showUser() {
  this.replaceRoute('user', this.get('user'));
  this.close();
}