I am new to ember and I am trying to create a navigation component in my ember.js app.
I have previously created a component the exact same way that renders my blog posts from json data provided by an API. Basically the code you see here is the exact same but the keyword post have been substituted with the keyword page.
The problem is that the handlebars component is being rendered but page.title.rendered is not 'rendered'. Even when I try to console.log(payload) in my serializer, I get no console output. It is as if they are not recognized.
json sample from api
[
{
"id":139,
"title":{
"rendered":"test"
}
}
]
adapters/page.js
export default Eudora.extend({
pathForType() {
return 'pages';
}
});
models/page.js
import Model from 'ember-data/model';
import DS from 'ember-data';
const {
attr,
//belongsTo
} = DS;
export default Model.extend({
title: attr()
});
routes/pages.js
import Ember from 'ember';
const {
Route,
set
} = Ember;
export default Route.extend({
model() {
return this.store.findAll('page');
},
setupController(controller, model) {
set(controller, 'pages', model);
}
});
serializers/page.js
import DS from 'ember-data';
export default DS.RESTSerializer.extend({
normalizeResponse( store, primaryModelClass, payload, id, requestType) {
payload = { pages: payload };
return this._super( store, primaryModelClass, payload, id, requestType );
}
});
templates/components/global-navigation.hbs
{{#each pages as |page|}}
<li>
<a href="#">{{page.title.rendered}}</a>
</li>
{{/each}}
templates/application.hbs
{{global-navigation pages=pages}}