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 在回调时以编程方式确定Backbone.js?_Javascript_Backbone.js - Fatal编程技术网

Javascript 在回调时以编程方式确定Backbone.js?

Javascript 在回调时以编程方式确定Backbone.js?,javascript,backbone.js,Javascript,Backbone.js,我试图确定Backbone.js model.on事件绑定到什么函数。例如,考虑到我的观点: this.model.on('change', this.render, this); 我希望能够以编程方式确定,当模型发生更改时,将调用render函数 我查看了Backbone.js源代码,发现绑定存储在.\u回调中。在.\u回调中,我可以确定模型绑定到的事件。从上面的示例中,我可以确定模型具有变更事件绑定。但是,是否可以确定模型已绑定到视图的渲染功能 对于那些好奇的人,我正在尝试扩展视图的渲染功

我试图确定Backbone.js model.on事件绑定到什么函数。例如,考虑到我的观点:

this.model.on('change', this.render, this);
我希望能够以编程方式确定,当模型发生更改时,将调用render函数

我查看了Backbone.js源代码,发现绑定存储在.\u回调中。在.\u回调中,我可以确定模型绑定到的事件。从上面的示例中,我可以确定模型具有变更事件绑定。但是,是否可以确定模型已绑定到视图的渲染功能

对于那些好奇的人,我正在尝试扩展视图的渲染功能,我目前正在使用该功能。但是,当我扩展/重新分配render函数时,它会破坏模型的事件绑定


谢谢

有几种方法可以做到这一点。您的绑定应该可以工作,但您必须手动禁用视图的正常绑定并添加自己的绑定:

function renderMore() {
    //do your pre-render code
    view.render()
    //do your post-render code
}
model.off('change', view.render);
model.on('change', renderMore);
然而,这是一个相当可怕的代码封装不良的气味。您是否考虑过对视图进行子类化,并在子类中的正确时间调用父类的
render
方法

我面临这样一种情况:我希望能够将对话框呈现为一个纯窗口,没有额外的外观元素,以及一个带有标题栏、关闭按钮等的jquery模式对话框。我让父类负责呈现基本内容,然后我可以添加mixin来处理jquery与vanilla的变化