javascript - 记录 Backbone.js 集合中的更改,我的集合未定义

标签 javascript model-view-controller backbone.js

嘿!我是 Backbone.js 的新手,所以这很可能是一个简单的问题。

我想在每次更改时控制台记录我的 friend 收藏。所以我绑定(bind)了集合中的 all 事件来调用我的 logFunction.. 但是在 logfunction 中 this.friends 是未定义的。为什么?

这是我的“应用”:

(function ($) {


       Friend = Backbone.Model.extend({
           //Create a model to hold friend atribute
           name: null
       });


       Friends = Backbone.Collection.extend({

           model: Friend,
           //This is our Friends collection and holds our Friend models
           initialize: function (models, options) {
               this.bind("add", options.view.addFriendLi);
               this.bind("all", options.view.logFriendsCollection);

               //Listen for new additions to the collection and call a view function if so
           }
       });

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

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

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


           showPrompt: function () {
               var friend_name = prompt("Who is your friend?");
               var friend_model = new Friend({ "name": friend_name });

               this.friends.add(friend_model);
           },

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

           },

           logFriendsCollection: function (args) {
               console.log("Friends", this.friends);
           }

       }); var appview = new AppView;

最佳答案

在您的 AppView.initialize 中,您应该调用 _.bindAll(this, 'logFriendsCollection')this 绑定(bind)到 AppView

关于javascript - 记录 Backbone.js 集合中的更改,我的集合未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6152664/

相关文章:

javascript - npm install(在预安装时优雅地停止进程)

javascript - 从 angularjs 中的多个 json 数组动态检索数据

Javascript - 索引数组/列表中的每个元素

c++ - 向旧的 C++ 意大利式编码器介绍 MVC?

javascript - 必须在 Backbone.js 中指定 'url' 属性或函数错误

javascript - 在 JavaScript 中使用 PHP 变量

ruby-on-rails - 类 CommentsController 的父类(super class)不匹配(TypeError),重命名的最佳方法?

html - 在局部 View 中将两列并排放置

javascript - 我应该如何将我的数据附加到我的主干 View ?

javascript - 在 BackboneJS 中自动定义自定义 JS 库