Не удалось показать список документов в представлении, используя 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}

В дополнение к официальным документам по дерби я нашел дерби-часто задаваемые вопросы, чтобы быть хорошим ресурсом.

Другие вопросы по тегам