ember.js - Rendering models from an ember-data store, using a http-mock server and RESTAdapter fails -
i'm having issued hooking ember-data http-mock using simple model. want load api containing properties, , render them list on page.
when navigating /properties/
route described below, error being thrown:
error: not found @ ember$data$lib$system$adapter$$adapter.extend.ajaxerror (rest-adapter.js:714) @ ember$data$lib$system$adapter$$adapter.extend.ajax.ember.rsvp.promise.hash.error (rest-adapter.js:789) @ jquery.callbacks.fire (jquery.js:3143) @ object.jquery.callbacks.self.firewith [as rejectwith] (jquery.js:3255) @ done (jquery.js:9311) @ xmlhttprequest.jquery.ajaxtransport.send.callback (jquery.js:9713)
and template doesn't render.
here's i've done:
- added
property
model:
import ds 'ember-data'; export default ds.model.extend({ title: ds.attr('string'), date_added: ds.attr('date') });
- added 'routes/properties.js' looks this:
import ember 'ember'; export default ember.route.extend({ model: function() { return this.store.find('property'); } });
- added application adapter in
app.js
:
app.applicationadapter = ds.restadapter.extend({ namespace: 'api', host: 'http://localhost:4200/' });
- used generator,
ember g http-mock property
generate mock server. here relevant snippetserver/mocks/property.js
:
propertyrouter.get('/', function(req, res) { res.send({ 'property': [{ id: 1, title: "apartament cu 4 camere ultracentral doar pentru pretențioși" },(...)] }); });
please note curl -h "contenttype:application/json" http://localhost:4200/api/property/
works charm.
- i have route,
this.route("properties", { path: '/properties'});
renderstemplates/properties.hbs
, , in template attempt display properties, follows:
{{#each property |p|}} <div class="property"> {{p.title}} </div> {{/each}}
- if, @
2.
, replacereturn this.store.find('property');
return [1,2,3]
, no longer breaks, , i'm able iterate collection. found, then,this.store.find
causing problem.
any idea on how handle this? need other setup/code snippets?
the versions ember/ember-data "ember": "1.11.1", "ember-data": ">= 1.0.0-beta.16.1",
as suspected, rest adapter configuring ignored configuration. solved problem declaring adapter , passing argument when creating app
object.
var customrestadapter = ds.restadapter.extend({ namespace: 'api', host: 'http://localhost:4200' }); app = ember.application.extend({ moduleprefix: config.moduleprefix, podmoduleprefix: config.podmoduleprefix, resolver: resolver, applicationadapter: customrestadapter, });
word of caution, previous code @ 3.
downright not working, though it's referenced in @ least 3 places in official documentation. since i'm starting dip ember, kind of disappointment, i'm not sure how up-to-date docs are, yeah wary.
this, alongside @briscbogdan's mention of rember-data's automatic inflexion solved issue.
Comments
Post a Comment