2015-08-27 3 views
2

Я использую sequelize и sequelize-hierarchy в моем приложении, и частично определены модели, как:sequelize и sequelize-hierarchy: Как выполнить аксессуар в модели getter?

ancestors : { 
    type: orm.Sequelize.VIRTUAL, 
    get: function() { return 'TODO how return getAncestors here?' } 
    } 

Внутри геттер, как я могу получить доступ к getAncestors() методу, предоставленный sequelize-hierarchy?

+0

Пожалуйста, ответьте на свой вопрос и пометить его как принято, так как у вас уже есть ответ от 'sequelize-hierarchy' разработчика здесь https://github.com/overlookmotel/sequelize-hierarchy/вопросы/20 – leroydev

ответ

2

@leroydev Благодарность за recordatory;)

Как разработчик сказал мне в этом вопросе:

Я боюсь, что это не возможно. Вам нужно будет сначала загрузить предков с включением. Геттер не может выполнить асинхронно, и поэтому не может получить предков из базы данных. Когда вы используете include, он выбирает в то же время, что и основной запрос.

Это ограничение Sequelize (на самом деле я считаю вполне разумным ). Боюсь, я ничего не могу с этим поделать, поэтому я закрываю этот PR.

Ссылка: https://github.com/overlookmotel/sequelize-hierarchy/issues/20

Смежные вопросы