--- title: Ractive.js layout: default vim: ft=javascript --- ### Initialization new Ractive({ el: $('..'), el: '#box', template: '...', // required // callbacks init: function() // on instanciate complete: function() // on finish animations // objs data: { ... } partials: { ... } // global: Ractive.partials transitions: { ... } // global: Ractive.transitions components: { ... } adaptors: [ ... ] // options magic: false modifyArrays: true twoway: true noIntro: true // true = disable transition on initial render lazy: false // false = use keyevents, true = use change/blur append: false // false = overwrite element, true = append debug: false sanitize: false }) http://docs.ractivejs.org/latest/initialisation-options ### Components Widget = Ractive.extend({ ... }) ractive = new Ractive({ el: 'main', template: '', components: { widget: Widget } }); https://github.com/RactiveJS/Ractive/issues/74 https://github.com/RactiveJS/Ractive/wiki/Components ### Partials // Global partials Ractive.partials.x = "<..>" ### Events view.on({ activate: function () { ... } }); view.on('sort', function (e, column) { console.log('sorting by #{column}'); }); ### Observing view.observe("name", function (name) { console.log("Changed name to", name); }, { init: false }); ### Markup Hello, {{name}} Body: {{{unescaped}}} {{#list:i}}
  • {{this.name}}
  • {{name}}
  • {{.}}
  • {{/#list}} {{^user}}Not logged in{{/user}} {{#user}}Welcome, sire{{/user}} {{>partialName}} {{#statusDogs[selected]}} ### Transformed attributes This transforms the `list` attribute via a helper function called `sort()`. {{# sort(list, "name") :num }}
  • {{num}} - {{name}}
  • {{/ end. any text goes here }} data: { sort: function(array, column) { return array.whatever(); } } ### Transitions
    Ractive.transitions.bump = function(t, params) { params = t.processParams( params, { duration: 400, color: t.isIntro ? 'rgb(0,255,0)' : 'rgb(255,0,0)' }); if (t.isIntro) { /* enter */ } else { /* exit */ } t.complete(); };