繁体   English   中英

emberjs:如何在View中触发自定义事件

[英]emberjs: how to trigger a custom event in a View

我想将原始事件(单击)转变为语义事件,例如“ deleteTodo”。 此处对此进行了介绍,但没有介绍如何实现:(
我有以下代码:

App.TodoView = Em.View.extend({
    click: function(e) {
        this.trigger("deleteTodo");
    }
});

App.Router.map(function(match) {
    match('/').to('index');
});

App.IndexRoute = Ember.Route.extend({
    deleteTodo: function(e) {
        // this code is never executed :(
    }
}) ;

执行“单击”后,我看到调用了TodoView click函数,但没有调用IndexRoute中的deleteTodo函数。 有什么建议可能会出什么问题吗?

干杯

您可以使用this.get(“ controller”)。send(“ deleteTodo”)。 这将向控制器发送一条消息,如果控制器不处理deleteTodo,它将冒泡到路由器并在那里进行处理。

click: function(e) {
    this.get('controller').send("deleteTodo");
}

在路由器中,您还需要定义事件:

events: {
  doStuff: function(e) {
    alert("Do stuff") ;    
  }
}

http://jsfiddle.net/9Xasr/7/

我通常会在控制器中进行记录删除。 似乎将其放在路由器事件中并不理想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM