1

У меня есть несколько общий вид, который может за исключением 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) 

Но я получаю такое же предупреждение.

Есть ли уловка для получения типа модели/имени?

Спасибо!

ответ

2

Ум я попробовал, и он выглядит правильно, вы используете 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