获取 backbone 模型的 name/type
Get the name/type of a backbone model
我有一个比较通用的视图,可以排除 6 种不同类型的模型。
我这样创建视图并传入模型:
var view = new MyView({
model: myModelType //can be 1 of 6 different model types
});
在视图中,我需要显示一个子视图,但前提是模型不是某种类型。
在视图中,我只引用'this.model'这样的模型。有没有办法找出传入的模型类型?
我试过了,但收到警告:
if (this.model != ModelTypeA) { do stuff }
警告是:在脚本模式下不允许使用未声明的变量。
我也试过:
if (!this.model instanceof ModelTypeA)
但我收到了同样的警告。
获取模型有技巧吗type/name?
谢谢!
嗯,我试过了,我觉得很合适,你在用 new
吗?
var A = Backbone.Model.extend({});
var B = Backbone.Model.extend({});
var AA = A.extend({});
new A() instanceof Backbone.Model
> true
new AA() instanceof Backbone.Model
> true
new AA() instanceof A
> true
new A() instanceof B
> false
new B() instanceof A
> false
我有一个比较通用的视图,可以排除 6 种不同类型的模型。
我这样创建视图并传入模型:
var view = new MyView({
model: myModelType //can be 1 of 6 different model types
});
在视图中,我需要显示一个子视图,但前提是模型不是某种类型。
在视图中,我只引用'this.model'这样的模型。有没有办法找出传入的模型类型?
我试过了,但收到警告:
if (this.model != ModelTypeA) { do stuff }
警告是:在脚本模式下不允许使用未声明的变量。
我也试过:
if (!this.model instanceof ModelTypeA)
但我收到了同样的警告。
获取模型有技巧吗type/name?
谢谢!
嗯,我试过了,我觉得很合适,你在用 new
吗?
var A = Backbone.Model.extend({});
var B = Backbone.Model.extend({});
var AA = A.extend({});
new A() instanceof Backbone.Model
> true
new AA() instanceof Backbone.Model
> true
new AA() instanceof A
> true
new A() instanceof B
> false
new B() instanceof A
> false