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