1

AppView からコレクションのメソッドを呼び出したい。しかし、それはできません。私のコードはこのようなものです。

todolist.js

define(["todolist","todo"],function(TodoList,Todo){
    var TodoList = Backbone.Collection.extend({
            url: "/todos",
            initialize:function(){
                this.fetch();
                this.bind("add",this.update,this);
            },
            add:function(){
                console.log("added");
            },
            update:function(){
                    console.log("update!");

                    }
    });

    return TodoList;
});                                                                                                

app.js

 define(["jquery","underscore","backbone","todo","todolist","todo_view"],
    function($,_,Backbone,Todo,TodoList,TodoView){
        var AppView = Backbone.View.extend({
                initialize:function(){
                    this.collection = new TodoList;
                    this.collection.update();
                },
                events:{
                    "keypress #new-todo":"create",
                },
                    create:function(e){
                        if (e.keyCode === 13){
                            var txt = $("#new-todo").val();
                            var todo = new Todo({title: txt});
                            this.collection.add(todo.toJSON());
                        }
                    }
                }
        );
        return new AppView({el: $("body")});
});

      


    
    

                     

しかし、なぜ this.collection.update() メソッドが undefined を出力するのかわかりません。何か考えはありますか?そして、私のすべてのコードはここにあります https://github.com/haradashinya/my-todo-redis

前もって感謝します。

4

1 に答える 1

1

間違いはあなたのapp.js定義にあります。インスタンスを返すAppViewのではなく、インスタンスをモジュール定義の外で作成する必要があります。現在のように、それが戻るまでにtodolistはまだ定義されていません。

于 2012-08-19T18:13:09.673 に答える