backbone.js将两个函数绑定在一起以按顺序启动
我试图在我的backbone.js视图中绑定两个函数,但不知道为什么它不起作用 有人能提出建议吗backbone.js将两个函数绑定在一起以按顺序启动,backbone.js,Backbone.js,我试图在我的backbone.js视图中绑定两个函数,但不知道为什么它不起作用 有人能提出建议吗 define([ 'jquery', 'underscore', 'backbone', 'libs/jquery_ui_dependency', 'vehicle/js/collections/MakeSet', 'vehicle/js/collections/ModelSet', 'vehicle/js/collections/TrimSe
define([
'jquery',
'underscore',
'backbone',
'libs/jquery_ui_dependency',
'vehicle/js/collections/MakeSet',
'vehicle/js/collections/ModelSet',
'vehicle/js/collections/TrimSet',
'vehicle/js/collections/YearSet',
'vehicle/js/views/Paginator'
], function($, _, Backbone, JQueryUi, MakeSet, ModelSet, TrimSet, YearSet, Paginator){
'use strict';
var BrowseVehicleView = Backbone.View.extend({
el: $('#vehicle-browse-form'),
initialize: function(){
JQueryUi.init();
_.bindAll(this, 'render', 'onMakeChange');
//define array of elements to be used in DOM manipulations
this.elements = {
"make" : $('#id_make', this.el),
"model" : $('#id_model', this.el),
"trim" : $('#id_trim', this.el),
"year_from" : $('#id_year_from', this.el),
"year_to" : $('#id_year_to', this.el),
"price_from" : $('#id_price_from', this.el),
"price_to" : $('#id_price_to', this.el)
}
},
events: {
"change #id_make" : "onMakeChange",
"change #id_model" : "onModelChange",
"change #id_trim" : "onTrimChange"
},
render: function(){
Paginator.filter({
model__make: this.elements.make.val(),
model__model: this.elements.model.val(),
model__trim: this.elements.trim.val()
});
},
onMakeChange: function(event) {
this.resetElement([
this.elements.model,
this.elements.trim,
this.elements.year_from,
this.elements.year_to
]);
// load models
this.RenderCollection(ModelSet, {make: this.elements.make.val()}, [this.elements.model]);
},
我在这里试图实现的是,每次调用onMakeChange时,它都应该调用render函数来呈现Paginator.filter()\uuz。bindAll确保在调用方法时,将“this”的值设置为您指定的值。因此,u.bindAll(这个'render','onMakeChange')指定在调用render或onMakeChange时,BrowseVehicleView被设置为'this'的值
如mu所述,您可能希望在onMakeChange()内手动调用this.render(),或将this.render作为事件处理程序绑定到模型引发的事件之一。resetElement做什么?那么
RenderCollection
呢?通常,您只需将render
绑定到一个事件(“更改”
或“重置”
),然后执行一些操作来触发该事件。或者手动调用render
。谢谢大副的解释。我完全不明白bindAll的目的:)