JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<main></main>

<script id='template' type='text/ractive'>
    {{#each items :i}}
        <div>
            <h2>Item {{name}}</h2>
            <p>Selected: {{ (selected && selected[i]) || 'nothing'}}</p>
            {{#each options}}    
                <label>
                    <input type='radio' name='{{selected[i]}}' value='{{this}}'/>
                    {{this}}
                </label>
            {{/each}}
        </div>
    {{/each}}
</script>

CSS

body {
    font-family: 'Helvetica Neue', arial, sans-serif;
    font-weight: 200;
    color: #353535;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 200;
}

JavaScript

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        items: [
            { options: [ 'a', 'b', 'c' ] },   
            { options: [ 'd', 'e', 'f' ] },   
            { options: [ 'g', 'h', 'i' ] }   
        ]
        
        // Uncomment this line to make it work. Alternatively, replace
        // `{{selected[i]}}` in the template with `{{~/selected[i]}}`
        // , selected: []
    }
});