<!DOCTYPE html>
<html>
<head>
<link href="//cdn.jsdelivr.net/picnicss/4.1.1/picnic.min.css" rel="stylesheet">
<script src="//rawgit.com/magnumjs/mag.js/master/dist/mag.0.20.6.min.js"></script>
</head>
<body>
<h1>Hello Mag.JS!</h1>
<a target="_tab" href="https://github.com/magnumjs/mag.js">GitHub</a>
<hr/>
<div id="app" class="hide">
<h2>Boilerplate: </h2>
My things: <count></count>
<ul>
<li></li>
</ul>
</div>
<script src="//rawgit.com/magnumjs/mag.js/master/src/mag.addons.js"></script>
<script src="parent-mod.js"></script>
<script src="child-mod.js"></script>
<script src="app-init.js"></script>
</body>
</html>
// initialize mag module reference
mag.mods.demo.parent({ things: []});
/* Styles go here */
(function(namespace) {
var props = {
onThingClick: function(things) {}
}
var mod = {
view: function(state, props) {
state.h2 = {
_onclick: function() {
state.count = state.count + 1 || 1
props.things.push(state.count)
props.onThingClick(props.things)
}
}
}
}
namespace.child = mag.create('app', mod, props);
})(mag.namespace('mods.demo'));
(function(namespace) {
var mod = {}
// default props to be over ridden
var props = {
things: []
}
mod.controller = function(props) {
mag.addons.show(this)
this.li = props.things
this.h2 ='My MagJS mod!'
}
mod.view = function(state, props) {
mag.mods.demo.child({
key: "things",
things: props.things,
onThingClick: function(things) {
state.li = things
}
});
}
namespace.parent = mag.create('app', mod, props);
})(mag.namespace('mods.demo'));