【问题标题】:Ember: Call an action from a button in a nested divEmber:从嵌套 div 中的按钮调用操作
【发布时间】:2015-11-05 10:55:35
【问题描述】:

所以我有一个使用引导程序的 Ember 应用程序。我看起来工作正常,但我在从下拉菜单中获取按钮以触发操作时遇到问题。我可以在该下拉菜单之外使用一个按钮调用相同的操作,并且效果很好。

控制器:

actions: {
clearWords: function(){
       console.log("clear it!!");
  }
}

哈佛商学院:

<li>
   <div class="dropdown"> ...
      <button type="button" {{action "clearWords"}}>Clear</button>
   ...
   </div> 
</li>
<li>
  <button type="button" {{action "clearWords"}}>Clear</button>
  <!-- ^^ this one works -->
</li>

我尝试将目标添加到动作位,但这也不起作用。

{{action "clearWords" target="controller.controllerName"}}

任何能让我走上正确方向的建议都将不胜感激。

PS:如果您碰巧从 JSBin 发布示例代码,您可以使用 JSFiddle 代替吗?我在这里看不到我的代理后面的 JSBin :(

【问题讨论】:

  • Bootstrap 下拉菜单使用了一些 Javascript,那里会不会有一些干扰? Bootstrap 会取消该下拉菜单中的事件/事件冒泡吗?
  • link 。你能显示更多的代码。某些第三方 js 确实取消了导致 ember 操作不被触发的事件冒泡。但我不认为引导下拉菜单做这样的事情。
  • 谢谢大家,原来在控制器中调用了一个stopPropagation(),它阻止了动作冒泡。我们使用它来保持下拉菜单在内部单击时保持打开状态。感谢您的建议,我得以缩小范围。

标签: ember.js action


【解决方案1】:

抱歉,原来在控制器中进一步调用了 stopPropagation() 以防止操作冒泡。我们使用它来通过各种点击保持下拉菜单打开。

希望这能帮助其他人解决他们的代码问题。我不认为引导程序会阻止这些操作,但这肯定可以解释它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2021-11-17
    • 2017-02-26
    相关资源
    最近更新 更多