книжная полка. js получить название модели и назначить его экземпляру через плагин virtuals #beginner - PullRequest
0 голосов
/ 03 мая 2020

Я чувствую, что это очень глупый вопрос, но, насколько бы я ни старался, я не подхожу к решению его самостоятельно;

Итак, вот мы go:

Я устанавливаю и настраиваю виртуальный плагин:

bookshelf.plugin('bookshelf-virtuals-plugin');

, а затем приходит определение геттера:

...bookshelf.model(
  'MasterModel',
  {
    virtuals: {
      type() { return this.constructor.name; }
    }
  ...
  });
...

Позже я расширяю эту мастер-модель и определяю другие модели. Мы надеемся, что сможем получить имя последней модели в цепочке, экземпляром которой является текущая переменная, с помощью чего-то вроде: instance.get('type').

Я предположил, что на книжной полке должен быть атрибут / метод Model объект для доступа к тому, что определено во время определения, но не повезло найти его в документации API!

PS. Я использую виртуальный, потому что я wi sh, чтобы пропустить механизм модерирования сериализации toJSON().

1 Ответ

0 голосов
/ 06 мая 2020

Если все, что вам нужно, это определить, относится ли модель к определенному типу, вам просто нужно это:

const MyModel = bookshelf.model('MyModel')

// next some place where you need to check the model type
if (anotherModel instanceof MyModel) {
  // do stuff
}
...