0

私は backbone.js を始めたばかりで、いくつかの簡単なチュートリアルに従っていますが、途中でぶつかりました。FriendCollection.add メソッドを実行できないようです。エラーは発生しません。何か足りないものはありますか?this.FriendCollection.add(friend_model) と関係があると思います。

var Friend = Backbone.Model.extend({});

var FriendCollection = Backbone.Collection.extend
({
    initalize: function(models,options)
    {
        this.bind("add", options.view.addFriendLi);
    }
});

var FriendModel = Backbone.Model.extend
({
    name:null
});

var AppView = Backbone.View.extend
({
    el:$("body"),

    initialize: function()
    {
        this.FriendCollection = new FriendCollection(null,{view:this});
    },

    events:
    {
        "click #add-friend":"showPrompt",
    },

    showPrompt: function()
    {
        var friend_name = prompt("Who is your friend?");
        var friend_model = new FriendModel({name:friend_name});
        this.FriendCollection.add(friend_model);
    },

    addFriendLi: function(model)
    {
        $("#friends-list").append("<li>"+model.get('name') + "</li>");
    },
});

$(document).ready(function() 
{
    var appview = new AppView;
}); 
4

1 に答える 1

3

のスペルが間違っinitializeFriendCollectionいるため、実際にコレクションを渡されたビューにバインドすることはありません。

var FriendCollection = Backbone.Collection.extend
({
    initialize: function(models,options) // Fixed here
    {
        this.bind("add", options.view.addFriendLi);
    }
});
于 2012-06-11T14:26:48.587 に答える