Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Ember.js 单击灰烬打开一个新窗口_Ember.js - Fatal编程技术网

Ember.js 单击灰烬打开一个新窗口

Ember.js 单击灰烬打开一个新窗口,ember.js,Ember.js,当用户单击链接时,如何打开新窗口 我曾尝试添加target=“\u blank”和bindAttr,但不起作用 不起作用的代码: <a target="_blank" {{action goToSettings href=true}}>App Settings</a> 或 这是第一个示例的html输出: <a target="_blank" href="#/settings" data-ember-action="5">App Settings<

当用户单击链接时,如何打开新窗口

我曾尝试添加
target=“\u blank”
和bindAttr,但不起作用

不起作用的代码:

<a target="_blank" {{action goToSettings href=true}}>App Settings</a>


这是第一个示例的html输出:

<a target="_blank" href="#/settings" data-ember-action="5">App Settings</a>

您有两种选择:

  • 发送一个动作,并在处理该动作的javascript中调用
    window.open(…)
    打开特定URL的新窗口
  • 不要使用动作,而是将其设置为静态链接,或者如果需要的话 动态更改目标URL,使用
  • 这已添加到,因此现在在
    {{link to}
    中直接支持


    Pull request位于

    能否显示不起作用的代码?能否显示第一个示例的输出html?实际上,您正在应用程序中调用一个函数。
    goToSettings
    有什么作用?这种设置方式永远不会打开新窗口,除非您在该函数中显式编写代码。如果要将其作为链接,请将a URL(a route?)设置为
    href
    propertyYeah此函数正好位于我的路由器中:goToSettings:Ember.route.transition('root.settings'),第一种方法的问题是,我只想在特定情况下打开一个新窗口。对于所有其他操作,我希望它位于同一窗口中。我不确定我是否理解第二种选择。你的建议是什么?在第一种方法中,您仍然可以使用一些条件逻辑来决定是打开新窗口还是转换到另一个状态。对于第二个选项,您的想法是,
    yourBoundPropForTheUrl
    将是一个解析为您想要打开的URL的属性。如果您还没有在LinkView中支持此功能的Ember版本,您可能还在考虑如何生成一个对Ember路由逻辑有效的URL。正如@LukeMelia在其对的回答中所提供的,您可以访问路由器,根据与
    TransitionRoute
    类似的参数生成URL。下面是控制器操作中的一个示例:
    this.get('target').router.generate('item',item.topic_id,item.id)
    
    <a target="_blank" href="#/settings" data-ember-action="5">App Settings</a>