Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="//jashkenas.github.io/underscore/underscore-min.js"></script>
<script src="//jashkenas.github.io/backbone/backbone-min.js"></script>
<script src="http://marionettejs.com/downloads/backbone.marionette.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div id="container"></div>
  <script type='text/template' id='myTemplate'>
    <h2><%=heading%></h2>
    <div id='nestedDiv'></div>
  </script>
  <script type='text/template' id='innerTemplate'>
    <h2><%=nestedHeading%></h2>
  </script>
</body>
</html>
 
//Application Object
var myApp = new Marionette.Application({
  regions: {
    main: '#container'
  }
});
//First Model
var TaskModel = Backbone.Model.extend({
  defaults: {
    'heading' : 'Welcome to Backbone'
  }
});
//Second Model
var Person = Backbone.Model.extend({
  defaults: {
    'nestedHeading' : 'This is a subheading.'
  }
});
//View for Div #nestedDiv
var PersonView = Marionette.ItemView.extend({
  template: '#innerTemplate'
});
//View for main Region
var TaskView = Marionette.LayoutView.extend({
  template : '#myTemplate',
  regions: {
    'personLayoutRegion': '#nestedDiv'
  },
  onShow: function() {
    var person = new Person();
    var personView = new PersonView({model: person});
    this.personLayoutRegion.show(personView);
  }
});
var taskModel = new TaskModel();
var taskView = new TaskView({model:taskModel});
myApp.main.show(taskView);
Output 300px

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers