puredom-view

0.2.0 • Public • Published

puredom-view NPM Version Bower Version

A simple view-presenter base class/mixin for puredom.

Acts as a glue between puredom's RouteManager and ViewManager.


Instantiation

Using AMD:

define(['puredom-view'], function(view) {
    return view({
        template : 'Hello, world!'
    });
});

Without AMD:

<script src="puredom-rest.js"></script>
<script>
    var routes = new puredom.RouteManager();
 
    var route = view({
        url : '/hello',
        template : 'Hello.'
    });
 
    routes.register('hello', route);
</script>

Usage

define(['puredom-view'], function(view) {
 
    // the caller just registers this as a route/controller
    return view({
 
        // for the router:
        name : 'about',
        title : 'About',
        customUrl : '/about',
 
        // View template, usually obtained via a text dependency:
        template : '{{#terms}}<a class="term" href="{{url}}">{{name}}</a>{{/terms}}',
 
        // Event delegation mappings
        events : {
            'click a.term' : 'openThing'
        },
 
        // Delegated handler, called in response to clicks on <a class="term">
        openThing : function(e) {
            window.open( e.target.href );
            return e.cancel();
        },
 
        // Some default data to populate with. Real data can be passed to .populate()
        data : {
            terms : [
                { name:'Dinosaur', url:'http://wikipedia.org/wiki/Dinosaur' },
                { name:'Koala', url:'http://wikipedia.org/wiki/Koala' },
                { name:'Thu`um', url:'http://wikipedia.org/wiki/Skyrim' }
            ]
        }
 
    });
 
});

Package Sidebar

Install

npm i puredom-view

Weekly Downloads

5

Version

0.2.0

License

none

Last publish

Collaborators

  • developit