处理Ember中操作中的事件绑定和回调
Handling event binding and callbacks within actions in Ember
这种气味。这个操作的结果应该在页面上注册一个事件处理程序,但我应该放置命名的函数回调(clickHandler)吗?混合饮料?或者可能完全是另一类。
App.StepController = Ember.ObjectController.extend({
actions: {
captureStep: function() {
//Bind the handler to this so callback has access to Controller properties
var clickHandler = clickHandler.bind(this);
//Can't do this with jquery, as capture is not cross browser compatible.
//Setting capture to true on a body event makes this event fire before all others
if (document.body.addEventListener) {
document.body.addEventListener('click', clickHandler, true);
}
function clickHandler(event) {
event.preventDefault(); //Needed for links/buttons
event.stopImmediatePropagation(); //Stop the event from bubbling and prevent 'same element' event handlers
//Determine clickTarget...
console.log("Clicked: " + clickTarget);
this.set('model.targetPath', clickTarget);
// remove this handler from the body
document.body.removeEventListener(event.type, clickHandler, true);
}
}
}
});
Ember视图将为您处理页面事件;无需编写自己的事件处理程序:
App.StepView = Ember.View.extend({
click: function(event) {
this.get('controller').set(...);
}
}
});
或者,您可以使用链接或操作操作来处理单击事件。
相关文章:
- 在offline.js中绑定事件
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 在页面高度更改时绑定事件
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- 使用onbeforeunload绑定事件
- 传递类似绑定事件的参数
- 如何对修改后的元素重新绑定事件
- 聚合物模板自动绑定:在模板绑定事件之前的核心选择火灾
- Jquery差异B/w Jquery绑定事件
- SessionStorage绑定事件
- extjs,如何在表单操作中绑定事件
- 模拟 Web 浏览器方向更改事件以使用 Jasmine 测试绑定事件处理程序函数
- 绑定事件发射器上的单个事件
- 如何在绑定事件期间排除元素
- 将鼠标悬停在位于我的页面上的 iframe 上的绑定事件,其中包含包含的 src
- 在 jQuery 中创建 DOM 之前的绑定事件
- 如何在页面加载时在 ajax 调用中绑定事件处理程序后触发事件
- 使用 ajax 加载的页面绑定和取消绑定事件处理程序
- 咖啡脚本构造函数中的绑定事件
- 将数据添加到动态创建的元素和绑定事件