Javascript 主骨,马里奥奈特触发器
我希望通过内置的Javascript 主骨,马里奥奈特触发器,javascript,backbone.js,Javascript,Backbone.js,我希望通过内置的触发器方法,使用Backbone.marionetes'消息总线,将事件从ItemView冒泡到相应的控制器 下面,触发器方法正在侦听适当的jQuery事件,但在函数激发之前,我收到一条控制台消息: “未捕获类型错误:无法调用未定义的方法”replace“ 提前谢谢 list_view.js.coffee list_controller.js.coffee 问题很可能发生,因为您试图在触发器内进行处理: triggers: 'slidechange .slidetrack
触发器
方法,使用Backbone.marionetes'
消息总线,将事件从ItemView
冒泡到相应的控制器
下面,触发器方法正在侦听适当的jQuery
事件,但在函数激发之前,我收到一条控制台消息:
“未捕获类型错误:无法调用未定义的方法”replace“
提前谢谢
list_view.js.coffee
list_controller.js.coffee
问题很可能发生,因为您试图在触发器内进行处理:
triggers:
'slidechange .slidetrack' : (e, attrs) ->
App.execute "question:response", e, attrs.model
触发器应该只是将事件从视图冒泡到更高的层次,在那个里某种控制器可以处理它。事实上,你并没有在任何事情上冒泡,而是立即处理这个事件,这让木偶很困惑
对于这种情况,最简单的方法是使用事件哈希并将逻辑移动到外部函数,如下所示:
events:
'slidechange .slidetrack' : 'onSlideChange'
onSlideChange: (e, attrs) ->
App.execute "question:response", e, attrs.model
谢谢@drax!我很感激。一旦我累积了声望点数,我就会投票支持这一点。
triggers:
'slidechange .slidetrack' : (e, attrs) ->
App.execute "question:response", e, attrs.model
events:
'slidechange .slidetrack' : 'onSlideChange'
onSlideChange: (e, attrs) ->
App.execute "question:response", e, attrs.model