我正在更新个人项目,我使用的是ember.js版本0.9.x.
所以发布了一个新版本,我遇到了与ember操作相关的问题.
我有以下HTML代码:
<li><a href="#" id="startApp" {{action activateView target="view"}}> Home</a> <span class="divider">|</span></li>
Run Code Online (Sandbox Code Playgroud)
在哪里,当我点击它的调用这个函数activateView:
activateView: function(event, context) {
console.log(event);
}
Run Code Online (Sandbox Code Playgroud)
但事件和背景是不确定的.我已经尝试过this.context并返回undefined.
其主要思想是在用户点击时获取链接的id.
我知道路线和车把帮助链接,但我真的需要其他东西的id,
ant*_*ore 18
在恩伯2 ...
在您的操作中,您始终可以访问event具有DOM元素的Javascript 对象,例如
actions: {
myAction() {
console.log(event.target) // prints the DOM node reference
}
}
Run Code Online (Sandbox Code Playgroud)
事件未使用操作助手传递.如果您真的想要事件对象,则需要定义视图并使用该click事件:
App.MyLink = Em.View.extend({
click: function(e) {
}
});
Run Code Online (Sandbox Code Playgroud)
然后:
<li>{{view App.MyLink}}</li>
Run Code Online (Sandbox Code Playgroud)
但是需要访问dom事件是一种罕见的情况,因为你可以传递参数{{action}}.在你的情况下:
<li><a href="#" id="startApp" {{action activateView "startApp" target="view"}}> Home</a> <span class="divider">|</span></li>
Run Code Online (Sandbox Code Playgroud)
并在事件中:
activateView: function(id) {
console.log(id);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9241 次 |
| 最近记录: |