将 Backbone 集合对象转换为其原始类型
Casting Backbone Collection object to its original type
我使用 backbone js 将自定义元素添加到 backbone js 集合。我需要将其恢复为原来的类型,下面是
var Text = function () {
};
var Radio = function () {
};
function myfunction() {
var collection = new Backbone.Collection();
var t = new Text();
var r = new Radio();
collection.add(t);
collection.add(r);
alert(t instanceof Text);
alert(collection.at(0) instanceof Text);
}
语句 alert(t instanceof Text);
returns true 语句
alert(collection.at(0) instanceof Text); returns false .
有什么方法可以将其转换为原始类型吗?
你不能。
当t
不继承Backbone.Model
1[=时,collection.add(t)
等同于collection.add(new Backbone.Model(t))
24=]
Backbone.Model
的构造函数通过 Model.set
将 t
的属性复制到新对象中,但不保留源对象的任何其他信息2
如果可以,请扩展 Backbone.Model
以构建 Text
和 Radio
var Text = Backbone.Model.extend({
});
如果不是,您将必须在属性中添加其他信息以识别正确的原型。
1 Annotated source code, Collection._prepareModel
2 Annotated source code, Model.set
我使用 backbone js 将自定义元素添加到 backbone js 集合。我需要将其恢复为原来的类型,下面是
var Text = function () {
};
var Radio = function () {
};
function myfunction() {
var collection = new Backbone.Collection();
var t = new Text();
var r = new Radio();
collection.add(t);
collection.add(r);
alert(t instanceof Text);
alert(collection.at(0) instanceof Text);
}
语句 alert(t instanceof Text);
returns true 语句
alert(collection.at(0) instanceof Text); returns false .
有什么方法可以将其转换为原始类型吗?
你不能。
-
当
collection.add(t)
等同于collection.add(new Backbone.Model(t))
24=]Backbone.Model
的构造函数通过Model.set
将t
的属性复制到新对象中,但不保留源对象的任何其他信息2
t
不继承Backbone.Model
1[=时,如果可以,请扩展 Backbone.Model
以构建 Text
和 Radio
var Text = Backbone.Model.extend({
});
如果不是,您将必须在属性中添加其他信息以识别正确的原型。
1 Annotated source code, Collection._prepareModel
2 Annotated source code, Model.set