在Marionette Itemview中没有触发事件

Zhe*_*hen 3 events triggers marionette

我试图在牵线木偶项目视图(List.SendQuestion)中触发事件,但是,我无法在控制器中注册触发器(如下所示)

基本上,在点击'a.send'之后,应该发生一个触发器,'send_qn_view'应该捕获事件并打印出'triggered'消息.但那并没有发生.

有人可以告诉我这里可能出了什么问题吗?

@Dailymuses.module "SidebarModule.List", (List, App, Backbone, Marionette, $, _) ->
  List.Controller = 
    showSidebar: ->
      send_qn_view = new List.SendQuestions
        collection: Onethingaday.Public.friends

      send_qn_view.on "itemview:ask:user", (itemview, question) ->
        console.log('triggered') #THIS IS NOT EXECUTED

  class List.SendQuestion extends Marionette.ItemView
    template: "sidebar/list/templates/send_question"
    className: 'qn_askee'
    tagName: 'li'

    events:
      "click a.send" : "sendQuestion"

    sendQuestion: (e) ->
      e.preventDefault()
      debugger #this debugger was triggered
      @trigger "ask:user", @model

  class List.SendQuestions extends Marionette.CompositeView
    template: "sidebar/list/templates/send_questions"
    itemView: List.SendQuestion
    itemViewContainer: "ul.friends"
Run Code Online (Sandbox Code Playgroud)

Sco*_*leo 8

编辑:更正了我的答案并更新了我的小提琴

对于那个很抱歉.您的事件冒泡语法是正确的. https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md#childview-event-bubbling-from-child-views

"itemview:*"事件从子视图冒泡

当集合视图中的项视图触发事件时,该事件将通过父集合视图冒泡,其中"itemview:"前置于事件名称.

也就是说,如果子视图触发"do:something",则父集合视图将触发"itemview:do:something".

需要注意的事项.木偶支持视图触发器.如果您的回调只是触发视图事件,则可以删除事件哈希和回调并将代码缩短为:

triggers: {
  "click a.send": "ask:user"
}
Run Code Online (Sandbox Code Playgroud)

http://lostechies.com/derickbailey/2012/05/15/workflow-in-backbone-apps-triggering-view-events-from-dom-events/

小提琴:http: //jsfiddle.net/FRHkt/1/