1

バックボーン初心者です。Backbone を使用して Web アプリの開発を開始しましたが、このエラーが原因で私はうまくいきませんでした。どんな助けでも大歓迎です。

これは私のモデル クラスとコレクションです。

    var tasks = Backbone.Model.extend({ 
    default: function() {
    return {
        task : ''
       }}
    });

    var taskslist = Backbone.Collection.extend({ 
        model: tasks
    });

    var alltasks = new taskslist();

そして、これはビュークラスです:

    var taskview = Backbone.View.extend({ 
        model: new tasks(),
        tagName: 'div',
        initialize : function() { 
        this.template = _.template($('#temp').html());
    },
    render : function () {
        this.$el.html(this.template(this.model.toJSON()));  
        return this;
    }
    });



    var alltasksview = Backbone.View.extend ({ 
        model : 'tasks',
        el : $('#box1'),

    initialize : function() {
        this.model.on('add', this.render, this);
    },
    render: function () {
        var self = this;
        self.$el.html('');
        _.each(this.model.toArray(), function(tasks, i) {
            self.$el.append(new tasksview({ model:tasks }).render().$el);
            });
        }
    });

jQuery ドキュメントの準備完了関数では、この方法でボタンのクリックをリッスンして、クリック時にそのモデルの項目を追加します。

$(document).ready(function() { 

$("#but1").click(function(e) { 

    var task1 =  new tasks({ task : $('#text1').val() });
    alltasks.add(task1);
    console.log(alltasks.toJSON()); 
 });
 });

このコードは、対象のエラーをスローします。また、My Backbone のバージョンは 1.0.0 です。

ありがとうございました。

4

2 に答える 2

0

私は同じ問題を抱えていました。ちょうど今それを修正しました。問題は、Backbone が jQuery 1.7 以降を必要とすることです。jQuery バージョン 1.10 を 1.4.3 に置き換えました。このエラーは発生しなくなりました。これが機能しない場合は、bind メソッドを使用してみてください。

于 2014-01-10T01:29:18.007 に答える