如何识别点击事件ember.js的调用者
How do you recognize identify caller of click event ember.js
我是ember.js的新手,想知道如何确定是哪个div创建了点击事件。
index.html
------------旧代码------------------
{{#each App.menuController}}
{{#view App.menuClickable}}
<div id={{bindAttr id="idTagName"}}>
{{title}}
</div>
{{/view}}
{{/each}}
----------更新代码--------------------
{{#each App.menuController}}
<div id={{bindAttr id="idTagName"}} {{action selectMenuItem target="App.menuClickable"}}>
{{title}}
</div>
{{/each}}
app.js
App.MenuOption = Ember.Object.extend({
title: null,
idName: null
});
App.menuController = Ember.ArrayController.create({
content:[],
init : function()
{
// create an instance of the Song model
for(var i=0; i<menuOptions.length; i++) {
console.debug(menuOptions[i]);
this.pushObject(menuOptions[i]);
}
},
click: function(e)
{
alert("here");
}
});
App.menuClickable = Ember.View.extend({
click: function(evt) {
alert("ClickableView was clicked!");
console.debug(evt);
},
classNames: ['navButton'],
selectMenuItem: function()
{
alert("selected Menu clicked");
}
});
正如您所看到的,这将打印出几个具有不同标记名称的div。我想将onclick操作事件关联到每个分区。
环顾四周,似乎有两种方法:
- 创建一个像我一样的视图,并覆盖单击函数(e){}。然而,如果我得到了这个路由,我不知道如何区分不同的div和触发它的原因。我可以查看事件的属性(target->attribute->Id),但我觉得应该有一个更干净的方法
使用操作{{action-click"idTagName"}}。然而,我在App.menuClickable中实现此操作时遇到问题。它没有被触发,我不知道为什么。我得到以下错误:
错误:没有处理事件"click"。throw new Error("Nothing handled the event'"+name+"'.");
我想你会像我在App.menuClickable中那样实现点击操作。还有其他地方应该实现吗?
{{action selectMenuItem "idTagName"}}
方法就是实现这一点的方法。默认情况下,{{action}}
助手将在控制器的actions
散列中查找selectMenuItem
函数。如果没有找到,它将被发送到路由器,路由器将检查当前路由和任何父路由的actions
哈希中的selectMenuItem
函数。
如果您想在视图上触发一个函数,请将其指定为{{action selectMenuItem "idTagName" target="view"}}
这样的目标
相关文章:
- Ember视图未响应用户启动的事件
- Ember事件处理程序中缺少view.conf或templateContext
- 使用Ember中的组件生命周期事件
- 处理Ember中操作中的事件绑定和回调
- Ember:使用{{action}}标签处理多个事件
- Ember.js处理View事件后转换到路由
- ember.js 中的事件处理程序
- 一个控制器如何在 Ember .js 中观察任意控制器/模型上的事件
- 加载 Ember 数据时捕获事件
- Ember.js映射操作键事件
- 按键事件在 Ember 中未按预期工作
- 如何将事件绑定到 ember 中动态创建的实例.js
- 如何通过 Ember.TextField 中的 insertNewline 事件访问 Ember.Checkbox ch
- 在 Ember 中保存预订时更新具有关系的现有事件
- Ember.View 内容可编辑事件
- 如何使用 Ember.sendEvent 将事件发送到每个实例化的控制器
- 如何识别点击事件ember.js的调用者
- 如何将Ember操作视为可信事件,以便window.open成功
- Ember onClick事件未完成操作
- 如何在Ember中编辑视图时停止事件冒泡