Не удалось показать список документов в представлении, используя derbyjs
Я впервые с derbyjs, не знаю, глуп ли я или нет документации. У меня есть модель под названием "книги", и я просто пытаюсь показать список книг.
вот мой код:
module.exports = {
properties: {
title: {type: 'string', minLength: 6},
author: {type: 'integer', minimum: 0},
image: {type: 'string'},
status: {type: 'integer', minimum: 0, maximum: 1}, // 1 read, 0 wants to read
comment: {type: 'string'}
},
required: ['title']
}
и список схем
module.exports = {
schemas: {
auths: require('./model/auths'),
products: require('./model/products'),
books: require('./model/books')
}
}
индекс JS
app.get('/shelf', function(page, model, params, next){
model.subscribe('books', function(){
var book = model.at('books.669374b5-8470-4f3a-a25f-0995a5a92a7a');
model.ref('_page.book', book);
page.render('home');
});
});
я ожидаю, что у меня будут "книги", поэтому я написал {{каждый}} так
{{ each books as #b}}
{{ #b.title }}
{{/each}}
но ничего не появляется, хотя это работает нормально и рендеринг, как и ожидалось
{{ _page.book.title }}
также на веб-консоли, это отлично работает и показывает 3 книги
app.model.get('books')
обратите внимание: я добавил книги через веб-консоль, что-то вроде этого
app.model.add('books', {title: 'something'})
внутри функции подписки я пытался
var books = model.get('books');
model.ref('_page.books', books);
но ошибка возникает
Есть идеи, что я делаю не так? я действительно люблю derbyjs, но это сдерживает меня на несколько дней
1 ответ
Если вы хотите, чтобы страница обновлялась автоматически, вы должны использовать ref
вместо get()
однако, например
app.get('/shelf', function(page, model, params, next) {
var booksQuery = model.query('books', {});
model.subscribe(booksQuery, function(err) {
booksQuery.ref('_page.books');
page.render('books');
});
});
Шаблон:
{{ each _page.books as #b}}
{{ #b.title }}
{{/each}
В дополнение к официальным документам по дерби я нашел дерби-часто задаваемые вопросы, чтобы быть хорошим ресурсом.