Javascript 主干下拉列表更改不';t更新集合中的模型
我是个新手,我在学习的时候遇到了这个问题,我试图解决这个问题已经有一段时间了,这让我很恼火。我正在为模型中的每个属性渲染一个下拉列表。更改选定值时,我希望更新模型。当我试图在OrderView中捕获更改事件时,它不起作用。如果我在OrderingView中这样做,它会工作,但是我需要搜索当前模型 我做错了什么 情况:我有这个模型:Javascript 主干下拉列表更改不';t更新集合中的模型,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我是个新手,我在学习的时候遇到了这个问题,我试图解决这个问题已经有一段时间了,这让我很恼火。我正在为模型中的每个属性渲染一个下拉列表。更改选定值时,我希望更新模型。当我试图在OrderView中捕获更改事件时,它不起作用。如果我在OrderingView中这样做,它会工作,但是我需要搜索当前模型 我做错了什么 情况:我有这个模型: var Order = Backbone.Model.extend({ defaults:{ column:
var Order = Backbone.Model.extend({
defaults:{
column: '',
order: ''
}
});
以及以订单为模型的对应集合。意见如下:
var orderView = Backbone.View.extend({
model: new Order(),
initialize: function(){
this.template = _.template(order_template);
},
render: function(){
var temp = this.template({model:this.model.toJSON(),order_columns:this.order_columns});
this.$el.html(temp);
return this;
},
events: {
'change .order_columns': 'change_column'
},
change_column: function(){
console.log('column changed..');
}
});
var orderingView = Backbone.View.extend({
model: new OrderCollection(),
initialize: function(){
var that = this;
_(this.options.orderings).each(function(or){
that.model.add(new Order({column: or.column, order: or.order}));
});
this.model.on('add', this.render, this);
this.model.on('change', this.changed_item,this);
},
render: function(){
var that = this;
that.$el.html('');
var temp_order = '';
_.each(this.model.toArray(), function(ordering, i){
var obj = new orderView({model: ordering, order_columns: that.options.order_columns}).render().$el.html();
temp_order += obj;
});
var temp = _.template(ordering_template,{element: temp_order});
that.$el.html(temp);
$(document).ready(function(){
$('.add-ordering').click(function(){
var new_order = new Order({column: 'none', order: 'ASCENDING'});
that.model.add(new_order);
});
});
return this;
},
});
调用来自使用requirejs的不同文件:
that.orderView = new orderingView({el:table,
orderings: that.data.models.layers[0].orderings,
order_columns:that.data.models.layers[0].columns});
另外,我在开始时使用requirejs加载html模板,称为order_模板和ordering_模板
模板:
没有一个
ASC
描述
问题很可能是视图没有绑定根DOM元素()。这是因为您既不指定任何DOM属性(tagName
,className
,id
),也不显式指定el
属性。我尝试添加元素标记,但在主视图中,创建时分析了元素标记。你能具体说明我应该做什么吗..我很困惑,每个模型的渲染都是有效的,但是更改事件不会触发。模板是什么样子的?如何实例化视图以及如何在页面上获取视图?有没有可能在jsfiddle.net或类似网站上看到一个最小的功能演示?谢谢你的帖子。我在最初的帖子中添加了两个不同的模板。你有什么建议吗?初始视图是从不同的文件调用的,如上所述。当我调试时,渲染工作正常,我可以看到下拉列表,但是如果我想捕获模型中的更改事件,则什么都不起作用。