This is an experiment to make Marionette work with HTMLBars. This repository is a work in progress.
npm install marionette-htmlbars
import { ItemView } from 'marionette-htmlbars'
let MyHTMLBarsView = ItemView.extend({
// ...
});
Additionally, you can patch all Marionette's Views prototypes
require('marionette-htmlbars')();
- Lazy efficient rerendering
import { ItemView } from 'marionette-htmlbars';
let View = ItemView.extend({
collectionEvents: {
'sort': 'render'
}
});
- Region autobinding [Partially working]
<div {{region name="regionName"}}></div>
import { LayoutView } from 'marionette-htmlbars';
let View = LayoutView.extend({
onRender() {
this.showChildView('regionName', new OtherView());
}
});
- Actions autobinding
<button {{action "click" "remove"}}>Remove item</button>
import { ItemView } from 'marionette-htmlbars';
let View = ItemView.extend({
remove() {
this.model.remove();
}
});
- UI Autobinding
<section {{ui "sectionElement"}}>My Element</section>
import { ItemView } from 'marionette-htmlbars';
let View = ItemView.extend({
onSomeTrigger() {
this.ui.sectionElement.toggle();
}
});
npm install
npm run build
live-server
Navigate to the /demo
folder