主干模型方法未递增
Backbone model method not incrementing
我正在尝试对Backbone进行更多的挖掘,而对于过去只使用过Backbone视图的人来说,我现在正在尝试使用模型和集合。
现在,当我发布评论时,我会尝试增加评论数。
型号:
Comment = Backbone.Model.extend({
defaults: {
text: null,
count: 0
},
updateCount : function() {
console.log(this.set('count', this.get('count') + 1));
console.log(this.get('count'));
}
});
收藏:
CommentsCollection = Backbone.Collection.extend({
model: Comment,
initialize: function (models, options) {
this.on("add", options.view.appendComment);
this.on('add', options.view.resetComment);
}
});
视图:
CommentsView = Backbone.View.extend({
el: $("body"),
initialize: function () {
_.bindAll(this,
'addComment',
'appendComment',
'resetComment'
);
this.comments = new CommentsCollection(null, {
model: Comment,
view: this
});
},
events: {
"click #post-comment": "addComment"
},
addComment: function (evt) {
var $target = $(evt.currentTarget);
var $container = $target.closest('#comment-wrapper');
var text = $container.find('textarea').val();
var comment = new Comment({
text: text
});
//Add a new comment model to our comment collection
this.comments.add(comment);
return this;
},
appendComment: function (model) {
$('#comments').prepend('<div> ' + model.get('text') + '</div>');
model.updateCount();
return this;
},
resetComment: function () {
$('textarea').val('');
}
});
为什么它总是返回1(添加评论并单击"发布",然后查看控制台查看)?
演示:http://jsfiddle.net/ZkBWZ/
之所以会发生这种情况,是因为您将计数存储在Comment
模型上。每次点击提交按钮,都会创建一个新的Comment
,其中count
设置为默认值0
。方法updateCount
然后更新该全新模型的计数,所以您总是看到1。
如果你只是想确定有多少评论,我建议你看看CommentsCollection
的大小。在appendComment
中,您可以这样做:
appendComment: function (model) {
$('#comments').prepend('<div> ' + model.get('text') + '</div>');
// Get the number of comments
console.log(model.collection.models.length);
return this;
},
相关文章:
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- sails.js beforeCreate方法只接收required设置为true的模型属性
- 在extJS 4.2中,有没有一种方法可以将模型值动态绑定到表单
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- Odoo销售点如何访问模型并使用JS调用方法
- 有没有一种方法可以使用angular中的$index作为ng重复中的模型
- Ember.js-模型find()方法中的异步调用
- 续集返回未定义的模型自定义方法
- 当一个模型在骨干关系中被销毁时,销毁相关模型的最佳方法是什么?
- Django 使用 JSON 获取模型方法的值
- 如何将经度/经度值绑定到挖空视图模型方法
- 一种对MVC中的模型进行封装(添加隐私)的方法
- 将ng模型转发到指令中的元素的正确方法是什么
- 主干模型方法未递增
- 如何使用setVisible()方法设置json模型中元素的可见属性
- Backbone Collection.每个方法都会影响每隔一个模型
- 在canjs中,根据任何模型实例的存在,有条件地显示胡子模板部分的最常用方法是什么
- 如何等到find方法完成后再在Ember模型中进行进一步处理
- 有没有任何方法可以检测到用户'的Mac硬件模型
- 对于EmberJs模型,为什么不建议重写“init”方法