Ember-Model
Ember-Model
by Nirvanachain
HTML
<script src="http://builds.emberjs.com/tags/v1.10.0/ember-template-compiler.js"></script>
<script src="http://builds.emberjs.com/release/ember.min.js"></script>
<script src="https://rawgit.com/ebryn/ember-model/master/ember-model.js"></script>
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" id="index">
<h1>Index Template!!!{{active_date}}</h1>
<p>name = {{name}}</p>
<p>active_date = {{active_date}}</p>
<p>active_date.date = {{active_date.date}}</p>
<p>active_date.time = {{active_date.time}}</p>
</script>
JavaScript
App = Ember.Application.create();
var DateTime = {
dateStr: '',
timeStr: '',
serialize: function(string) {
var pieces = string.split('T');
this.dateStr = pieces[0];
this.hours = pieces[1].replace('Z','').split(':')[0];
this.minutes = pieces[1].replace('Z','').split(':')[1];
return {
date: this.dateStr,
time: this.hours + ':' + this.minutes
};
},
deserialize: function(string) {
return this.dateStr + 'T' + this.hours + ':' + this.minutes + 'Z';
}
};
App.TheModel = Ember.Model.extend({
name: Ember.attr(),
date: Ember.attr(DateTime)
});
/***
MOCK SERVER DATA
***/
var JSON_DATA = {
"name": "John",
"active_date": "2015-01-22T01:30Z"
};
App.Router.map(function() {
this.resource('index', {path: '/'});
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.TheModel.create(JSON_DATA);
}
});