Rivets adapter for Noscript MVC framework
npm install ns-rivetsПолная перерисовка HTML-нод у видов убивает анимацию и может быть излишней при
незначительных изменениях моделей. Например, когда нужно переставить класс
при смене определенного состояния или изменить текст в одной из внутренних нод.
Это подход к решению обеих проблем за счет использования DOM-шаблонизации,
используемой в том или ином виде во фреймворках Knockout
и Angular. В качестве движка DOM-шаблонизации используется
микробиблиотека Rivets.js.
Вид, который будет использовать на DOM-шаблонизацию, должен указать ns.ViewRivets
в качестве базового класса: [TODO: Про инвалидацию вида]
``js`
ns.View.define('order', {
models: ['order'],
}, ns.ViewRivets);
Yate-шаблон:
` // ... Ниже много другого, нечасто меняющегося, HTMLhtml`
match .order ns-view-content {
// rv-атрибут выше примерно соотносится с традиционной записью
//
// if models.order.complete {
// @class += " order_complete"
// }
'{{ models.order:assignee }}'
}
Для подписки на изменение атрибутов модели используется binder :. Ниже,.deleted
например, происходит скрытие или показ блока в зависимости от значения на модели message:
Для подписки на изменение содержимого модели-коллекции можно использовать
binder *. Это удобно, например, для динамической отрисовки списков:
`html`
'{{ todo:title }}'
Более подробно можно посмотреть в примере, вид view-messages.js.
Склонируйте репозиторий, перейдите в его корень и выполните:
npm install && npm run examples
После запуска сервера перейдите по http://localhost:8181/examples/` в браузере.