Ember Data Mockjax
by alexspeller
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mockjax/1.5.2/jquery.mockjax.js"></script>
<script src="http://ember.alexspeller.com/handlebars-1.0.0.js"></script>
<script src="http://ember.alexspeller.com/ember-latest.js"></script>
<script src="http://ember.alexspeller.com/ember-data-latest.js"></script>
<script type="text/x-handlebars">
<h1>Example</h1>
{{#link-to "projects"}}Project Teams{{/link-to}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="projects">
<h2>Project Teams</h2>
<ul>
{{#each project in model}}
<li>Project:{{project.name}}<br>
{{#each projectTeam in project.project_teams}}
Team: {{projectTeam.team.name}}
SDE: {{projectTeam.sdeEffort}}
{{/each}}
</li>
{{/each}}
</ul>
</script>
JavaScript
window.App = Em.Application.create();
App.ApplicationAdapter = DS.ActiveModelAdapter.extend();
App.ProjectsRoute = Em.Route.extend({
model: function() {
return this.store.find('project');
}
});
App.Router.map(function() {
return this.resource('projects');
});
App.ProjectTeam = DS.Model.extend({
sdeEffort: DS.attr('number'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
project: DS.belongsTo('project'),
team: DS.belongsTo('team')
});
App.Project = DS.Model.extend({
name: DS.attr('string'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
projectTeams: DS.hasMany('projectTeam')
});
App.Team = DS.Model.extend({
name: DS.attr('string'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
projectTeams: DS.hasMany('projectTeam')
});
$.mockjax({
url: "/projects",
responseText: {
project_teams: [
{
id: 2,
sde_effort: 213,
created_at: "2014-01-04T16:18:19.546Z",
updated_at: "2014-01-04T16:18:19.546Z",
project_id: 1,
team_id: 1
}, {
id: 3,
sde_effort: 2,
created_at: "2014-01-04T16:18:53.365Z",
updated_at: "2014-01-04T16:18:53.365Z",
project_id: 1,
team_id: 1
}, {
id: 1,
sde_effort: 123,
created_at: "2014-01-04T16:17:59.498Z",
updated_at: "2014-01-04T16:17:59.498Z",
project_id: 1,
team_id: 1
}
],
projects: [
{
id: 1,
name: "asd",
created_at: "2014-01-04T16:17:59.441Z",
updated_at: "2014-01-04T16:17:59.441Z",
project_team_ids: 1
}, {
id: 2,
name: "sadfsdf",
created_at: "2014-01-04T16:18:19.504Z",
updated_at: "2014-01-04T16:18:19.504Z",
project_team_ids: 1
}, {
id: 3,
name: "dfgdf",
created_at: "2014-01-04T16:18:53.311Z",
updated_at: "2014-01-04T16:18:53.311Z",
project_team_ids: 1
}, {
...