Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <link href="//cdn.jsdelivr.net/picnicss/4.1.1/picnic.min.css" rel="stylesheet">
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <h1>Hello Mag.JS!</h1>
  <a target="_top" href="https://github.com/magnumjs/mag.js">GitHub</a>
  <hr/>
  <!-- ASYNC -->
  <div id="async">
    <button>click</button>
    <span class="test">default</span>
    <span class="name"></span>
    <b>default</b>
    <i><name></name></i>
  </div>
  <!-- ASYNC -->
  <script src="//rawgit.com/magnumjs/mag.js/master/mag-latest.min.js"></script>
  <script src="//rawgit.com/magnumjs/mag.js/master/dist/mag.addons.0.22.min.js"></script>
</body>
</html>
 
.hide {
  display: none;
}
a {
  display: block;
}
a:after {
  content: " \bb";
}
 
/* MagJS Example - Deferred example */
var props = {
  greet: 'Hello',
  show: true
};
var async = {};
async.controller = function(props) {
  this.i = mag.request({
    url: 'http://api.myjson.com/bins/demo',
    initialValue: {
      name: 'loading'
    }
  });
  this.show = props.show;
  this.name = '?';
};
async.view = function(state, props) {
  state.test = {
    _class: 'test ' + (state.show ? 'show' : 'hide'),
    _html: 'Hello',
  };
  state.button = {
    _onClick: function() {
      state.show = !state.show;
    }
  };
  setTimeout(function() {
    state.name = 'world';
  }, 1000);
};
mag.module("async", async, {
  prop: true
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers