我需要知道add
事件内部的模型是用 . 检索collection.fetch
还是由collection.create
. 可能吗?
collection.on('add', onModelAdded)
collection.fetch()
collection.create({})
function onModelAdded(model, collection, options) {
// created or fetched?
}
我需要知道add
事件内部的模型是用 . 检索collection.fetch
还是由collection.create
. 可能吗?
collection.on('add', onModelAdded)
collection.fetch()
collection.create({})
function onModelAdded(model, collection, options) {
// created or fetched?
}
我猜想这样的create
覆盖会起作用:
create: function(attributes, options) {
options = options || { };
options.came_from_create = true;
return Backbone.Collection.prototype.create.call(this, attributes, options);
}
然后你可以came_from_create
在你的回调中寻找:
function onModelAdded(model, collection, options) {
if(options && options.came_from_create) {
// We started in a create call on the collection.
}
else {
// We came from somewhere else.
}
}
options
如果您小心不要使用 Backbone 想要使用的任何选项名称,通常可以使用该参数来捎带数据位。
从骨干文档
是新的
这个模型已经保存到服务器了吗?如果模型还没有 id,则认为它是新的。
骨干源:
isNew: function() {
return this.id == null;
},
创建未设置 id 的模型时,它是一个新模型(没有 id 的模型被视为新模型),因此model.isNew()
返回 true
function onModelAdded(model, collection, options) {
if(model.isNew()){
// It's created
}else{
// It's fetched!
}
}