Javascript 主干下拉列表更改不';t更新集合中的模型

Javascript 主干下拉列表更改不';t更新集合中的模型,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我是个新手,我在学习的时候遇到了这个问题,我试图解决这个问题已经有一段时间了,这让我很恼火。我正在为模型中的每个属性渲染一个下拉列表。更改选定值时,我希望更新模型。当我试图在OrderView中捕获更改事件时,它不起作用。如果我在OrderingView中这样做,它会工作,但是我需要搜索当前模型 我做错了什么 情况:我有这个模型: var Order = Backbone.Model.extend({ defaults:{ column:

我是个新手,我在学习的时候遇到了这个问题,我试图解决这个问题已经有一段时间了,这让我很恼火。我正在为模型中的每个属性渲染一个下拉列表。更改选定值时,我希望更新模型。当我试图在OrderView中捕获更改事件时,它不起作用。如果我在OrderingView中这样做,它会工作,但是我需要搜索当前模型

我做错了什么

情况:我有这个模型:

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或类似网站上看到一个最小的功能演示?谢谢你的帖子。我在最初的帖子中添加了两个不同的模板。你有什么建议吗?初始视图是从不同的文件调用的,如上所述。当我调试时,渲染工作正常,我可以看到下拉列表,但是如果我想捕获模型中的更改事件,则什么都不起作用。