ember.js – 如何在ember-cli应用程序中设置api-stub?

前端之家收集整理的这篇文章主要介绍了ember.js – 如何在ember-cli应用程序中设置api-stub?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用ember-cli设置一个基本的应用程序,并且使用ember-data与api-stub遇到麻烦.我引用了api-stub README,并引用了ember指南,但无法弄清楚我缺少什么.我是一个noob,所以我原谅了任何明显的疏忽.

这是我的设置…

/api-stub/routes.js

  1. server.get('/listings',function(req,res) {
  2. var listing = {
  3. "listing": [{
  4. "id": 1,"title": "Sunny 1-bedroom","unit_type": "1br / 1ba","description": "Roomy 1-bedroom apartment in pre-war walkup. Gets great morning light from the south."
  5. },{
  6. "id": 2,"title": "Large 2-bedroom","unit_type": "2br / 1.5ba","description": "Roomy 2-bedroom apartment in pre-war walkup. Gets great morning light from the south."
  7. }]
  8. };
  9.  
  10. res.send(listing);
  11. });

/app/adapters/application.js

  1. var ApplicationAdapter = DS.RESTAdapter.extend({
  2. namespace: 'api'
  3. });
  4.  
  5. export default ApplicationAdapter;

/package.json

  1. {
  2. ...
  3. "APIMethod": "stub",...
  4. }

/app/router.js

  1. this.resource('listings',function() {
  2. this.resource('listing',{ path: '/:listing_id' });
  3. });

/app/routes/listings.js

  1. var ListingsRoute = Ember.Route.extend({
  2. model: function() {
  3. return this.store.findAll('listing');
  4. }
  5. });
  6.  
  7. export default ListingsRoute;

/app/models/listing.js

  1. var attr = DS.attr,hasMany = DS.hasMany,belongsTo = DS.belongsTo;
  2.  
  3. var Listing = DS.Model.extend({
  4. title: attr(),unit_type: attr(),description: attr()
  5. });
  6.  
  7. export default Listing

/app/templates/listing.hbs

  1. <h2>{{title}}</h2>
  2. <p>{{unit_type}}</p>
  3. <p>{{description}}</p>

在控制台中,它显示了一个404 / … / api /列表,并且chrome中的ember检查器没有显示任何记录.

任何帮助非常感谢!

解决方法

截止到目前为止,ember-cli现在支持API stubbing.我也使用以下示例设置(非常类似于您的原始设置):

/app/adapters/application.js

  1. var ApplicationAdapter = DS.RESTAdapter.extend({namespace: 'api'});
  2.  
  3. export default ApplicationAdapter;

/app/package.json

  1. {
  2. ...
  3. "APIMethod": "stub",...
  4. }

/app/routes/application.js

  1. export default Ember.Route.extend({
  2. model: function() {
  3. return Ember.RSVP.hash({
  4. foos: this.store.findAll('foo'),bars: this.store.findAll('bar')
  5. });
  6. },setupController: function(controller,models) {
  7. controller.set('foos',models.foos);
  8. controller.set('bars',models.bars);
  9. }
  10. });

/app/router.js

  1. var Router = Ember.Router.extend({
  2. location: ENV.locationType
  3. });
  4.  
  5. Router.map(function() {
  6. this.resource('foos',function() {
  7. this.resource('foo',{ path: '/:foo_id' });
  8. });
  9.  
  10. this.resource('bars',function() {
  11. this.resource('bar',{ path: '/:bar_id' });
  12. });
  13. });
  14.  
  15. export default Router;

/app/server/routes/foos.js

  1. module.exports = function(app) {
  2. app.get('/api/foos',res) {
  3. res.send({
  4. 'foos': [
  5. ...
  6. ]
  7. });
  8. })
  9. }

/app/server/routes/bars.js

  1. module.exports = function(app) {
  2. app.get('/api/bars',res) {
  3. res.send({
  4. 'bars': [
  5. ...
  6. ]
  7. });
  8. })
  9. }

猜你在找的JavaScript相关文章