ember.js - 从 ember 组件冒泡事件

标签 ember.js

我创建了一个呈现 html 文本并处理点击事件的组件。

Ember 组件不会冒泡事件,但我想让点击链接冒泡到窗口并让浏览器处理它。

代码讲述了超过 1000 个单词:-)

HTML

  <script type="text/x-handlebars" data-template-name="application">
      <h1>Click the link in the following div</h1>
      {{outlet}}
  </script>
  <script type="text/x-handlebars" data-template-name="index">
      {{test-a}}
  </script>
  <script type="text/x-handlebars" data-template-name="components/test-a">
    <div class="index" {{action 'edit' on="click"}}>
        <a href="http://www.example.com" target="_blank">Click me</a>
    </div>
  </script>

咖啡

App = Ember.Application.create({});

App.TestAComponent = Ember.Component.extend
    actions:
        edit: ->
            if event.toElement.nodeName.toUpperCase() == 'A'
                return true # should bubble to the window but is a component
            # do something for editing here
            alert('div clicked')
            false

CSS

h1 { font-size: 1.6em; padding-bottom: 10px; }
h2 { font-size: 1.4em; }
ul { padding: 15px; font-size: 1.4em; color: green; }
.index { background-color: #666; padding: 20px; }

fiddle :http://jsfiddle.net/ujrZL/

最佳答案

当您创建组件时,设置应使用 sendAction 传播的操作的操作名称。

{{test-a internalAction='myAction'}}

{{test-a internalAction='myAction2'}}

从组件内部

 this.sendAction('internalAction'); 

http://emberjs.jsbin.com/oPAtORO/2/edit

关于ember.js - 从 ember 组件冒泡事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776520/

相关文章:

javascript - Ember.js 对象函数定义中的计算属性

ember.js - 嵌套路由的命名约定是什么?

ember.js - Ember 加载模板从不显示

javascript - Ember 2,使用 Ember.run.debounce 调用路由中的函数

amazon-web-services - 使用历史位置的带有 Ember 应用程序的 AWS S3 404

javascript - Ember - 嵌套 View 中的异步数据

ember.js - 什么控制 Ember 加载路线的显示位置?

javascript - 从外部重新加载 Ember-Data

ember.js - 测试 Ember 数据模型-找不到关系

javascript - 如何删除emberjs中的键?