Ember.js 0.9.3 template

by reubenposthuma

HTML

<script src="https://raw.github.com/lukemelia/jquery-ui-ember/master/js/libs/jquery-ui-1.9pre.js"></script>
<script src="http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.rc.1.js"></script>
<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-1.0.0-pre.2.min.js"></script>
<script  type="text/x-handlebars" data-template-name="app"> 
    {{outlet}}
</script>


<script data-template-name="template" type="text/x-handlebars">
{{view Ember.TextField valueBinding="answer"}}
</script>

JavaScript

scratch = null;
function sneakyFunction(data) {
  console.log(data);
  scratch = data;
  return data;
}

subViews = new Array();

App = Ember.Application.create({
    autoinit: false
});

App.SurveyData = Ember.ArrayProxy.create({
  content: []
});


App.surveyViews = [];
App.surveyControllers = [];

for(i = 0; i<2; i++) {
  Ember.get('App.SurveyData').pushObject("Test object"),

  App.surveyViews[i] = Ember.View.extend({
    templateName: 'template',
  });

  App.surveyControllers[i] = Ember.Controller.extend({
    id: i,
    answerBinding: 'App.SurveyData.content'
  });
}

App.ApplicationView = Ember.View.extend({
  templateName: 'app'
});
  
App.ApplicationController = Ember.Controller.extend({ });

App.SubmitView = Ember.View.extend({
  templateName: 'final'
});

App.Router = Ember.Router.extend({
  enableLogging: true,
  root: Ember.Route.extend({
    //incrementStep: Ember.Route.transitionTo('step', Ember.get('currentStep')+1 ),
    index: Em.Route.extend({
      route: '/',
      connectOutlets: function(router) {
        router.route('/1');
      }
    }),
    step: Em.Route.extend({
      route: '/:step',
      connectOutlets: function(router, context) { 
        if(context.step <= App.surveyViews.length) {
          router.get('applicationController').connectOutlet({ 
              viewClass: App.surveyViews[context.step-1], 
              controller: sneakyFunction(App.surveyControllers[context.step-1].create()),
              context: {}
          });
        }
        else {
          router.transitionTo('finish');
        }
      }
    }),
    finish: Em.Route.extend({
      route: '/submit',
      connectOutlets: function(router, context) {
        router.get('applicationController').connectOutlet('submit');
      }
    })
  })
});

Ember.LOG_BINDINGS=true;
$(document).ready(function() {
  App.initialize();
});

testAnswer = "Reuben";