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)
编辑:更正了我的答案并更新了我的小提琴
对于那个很抱歉.您的事件冒泡语法是正确的. 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: //jsfiddle.net/FRHkt/1/
| 归档时间: |
|
| 查看次数: |
6904 次 |
| 最近记录: |