2
votes

I am trying to use the ember-data to build a model from a my own REST service. I have formatted my data according to how I understand the data should be returned from the service, but still stuck.

The issue is that I get no results showing in my view after initial page load. I dont think the model is being populated correctly.

What am I missing?

App = Ember.Application.create();

App.Account = DS.Model.extend({
  first: DS.attr( 'string' ),
  last: DS.attr( 'string' )
});

App.AccountAdapter = DS.RESTAdapter.extend({
  namespace: 'api',
  host: 'http://127.0.0.1:3000'
});

App.Router.map(function() {
  this.route('home');  
});

App.HomeRoute = Ember.Route.extend({
  model: function() {
    return this.store.find( 'account' );
  }
});

App.HomeController = Ember.Controller.extend({
  controllerTest : true
});

My data looks like the following:

{
  "accounts": {
    "id": 1,
    "first": "John",
    "last": "Doe"
  }
}

from url:

http://127.0.0.1:3000/api/accounts

My view template is:

<script type="text/x-handlebars" data-template-name="home">
  Home Template {{controllerTest}}

  {{#each item in model}}
    <br />
    {{item.first}}
    {{item.last}}
  {{/each}}
</script>

Thanks.

2

2 Answers

1
votes

I think your JSON format is slightly incorrect. It is my understanding you return a list of accounts, even if there's only one. Try this:

{
  "accounts": [
    {
        "id": 1,
        "first": "John",
        "last": "Doe"
    }
  ]
}
0
votes

Try

{{#each }}
  <br />
  {{first}}
  {{last}}
{{/each}}

or

 {{log this}} 

or use Ember-inspector to see what data do you have and whats going on there.