在Backbone.js集合中记录更改,我的集合未定义
Log changes in Backbone.js Collection, my collection is undefined
嘿!我是Backbone.js的新手,所以这个问题很可能很简单。
每次我的好友收藏发生变化时,我都想安慰一下。因此,我在集合中绑定了all
事件来调用我的logFunction。。但是在logfunction中CCD_ 2是未定义的。为什么?
这是我的"应用程序":
(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
绑定到AppView
。
我认为,当您将视图的logFriendsCollection
方法绑定到Friend集合时,该方法还会接收集合的上下文。因此,当您在方法中引用this
时,this
指的是集合而不是视图。
我在你的Fiddler链接上摆弄它,我更改的代码是
logFriendsCollection: function () {
console.log("Friends", this);
}
相关文章:
- 每次我都要导入我的集合api来进行插入和dipling
- Shopify-加载'集合/全部'在我的首页
- 我的 Meteor 项目如何通过服务器端 MongoDB/集合查找查询可靠地显示信息
- 为什么我的骨干.js集合重置只是添加 1 个模型
- 为什么我的主干集合重置事件没有触发
- 为什么我的主干集合包含一个空的模型项
- 如何将数据作为字符串从我的集合中获取
- 我应该使用嵌套集合来组织我的backbone.js应用程序吗
- 如何为我的所有BackboneJS模型/集合REST调用添加一个基本URL
- 为什么我的数据库对象的集合为空
- 我的主干集合中的响应/模型之间存在冲突
- 如何存储标签从引导标签输入字段到我的集合…
- 在Backbone/胸腔应用程序中实例化我的集合的位置
- Mongoose Model.remove(callback)不会从我的集合中删除任何东西
- 尝试Backbone.js,我的集合对象没有加载数据
- 为什么我的MVC动作不是模型绑定我的集合
- js:填充我的集合,然后将其追加到页面
- 如何发送与' getElementsByClassName '创建的集合到我的控制器
- Backbone.js,require.js:我如何将我的模型、视图和集合转换为require.js模块
- 为什么这不是插入一个文档到我的MongoDB集合