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";