Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主骨,马里奥奈特触发器_Javascript_Backbone.js - Fatal编程技术网

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