Skip to content

jbsouvestre/marionette-htmlbars

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marionette HTMLBars

This is an experiment to make Marionette work with HTMLBars. This repository is a work in progress.

Install

npm install marionette-htmlbars

Usage

import { ItemView } from 'marionette-htmlbars'

let MyHTMLBarsView = ItemView.extend({
    // ...
});

Additionally, you can patch all Marionette's Views prototypes

require('marionette-htmlbars')();

Features

  • Lazy efficient rerendering
import { ItemView } from 'marionette-htmlbars';

let View = ItemView.extend({
    collectionEvents: {
        'sort': 'render'
    } 
});

collectionReorder

  • 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();
    }
});

Demo / Development

npm install
npm run build
live-server

Navigate to the /demo folder

About

An experiment to make Marionette.js work with HTMLBars

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages