Events 事件未在木偶项目视图中触发

Events 事件未在木偶项目视图中触发,events,triggers,marionette,Events,Triggers,Marionette,我试图在木偶项目视图(List.SendQuestion)中触发事件,但是,我无法在控制器中注册触发器(如下所示) 基本上,在点击“a.send”之后,应该会发生一个触发器,“send_qn_视图”应该捕获事件并打印出消息“triggered”。但事实并非如此 有人能告诉我这里可能出了什么问题吗 @Dailymuses.module "SidebarModule.List", (List, App, Backbone, Marionette, $, _) -> List.Control

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

基本上,在点击“a.send”之后,应该会发生一个触发器,“send_qn_视图”应该捕获事件并打印出消息“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"
编辑:更正我的答案并更新我的小提琴

很抱歉。事件冒泡的语法是正确的。

“itemview:*”事件从子视图冒泡

当集合视图中的项视图触发事件时 事件将在父集合视图中冒泡出现,并显示 “itemview:”在事件名称前面加上前缀

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

要注意的事情。木偶网支持视图触发器。如果回调仅触发视图事件,则可以删除事件哈希和回调,并将代码缩短为:

triggers: {
  "click a.send": "ask:user"
}

小提琴:

对于本例中的任何新手,使用木偶2.x,
项目视图:
子视图已替换为父视图中的
子视图:
触发器,集合视图和复合视图的参数也已从
itemView
itemViewContainer
更改为
childView
childViewContainer

还有一个问题,我如何在触发期间添加模型作为参数?很抱歉,实际上我意识到在你的小提琴中,触发器事件已放置在集合视图中。在我最初的帖子中,我面临的问题实际上是在“itemView”中有一个触发事件,即在您的var PatchView中。如何从itemView触发事件?