HTTP请求后,数据未显示在Ember应用程序中

时间:2013-11-17 00:43:54

标签: javascript rest ember.js ember-data

我有一个基本的博客应用程序,我无法使用Ember-Data使RESTful Adapter正常工作。当我转到/posts路由时,它正在向服务器发送GET请求,并且节点服务器正在发回正确的数据,但它似乎不会持续存在于Ember中。

这是我的应用程序:

// Model
App.Post = DS.Model.extend({
    title:          DS.attr(),
    post_content:       DS.attr(),
    tags:           DS.attr(),
    creationDate:   DS.attr() 
});

// Posts route
App.PostsRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('post');
    }
});

App.PostsController = Ember.ArrayController.extend({
    sortProperties: ['title'],
    sortAscending: true,

    postsCount: function() {
        return this.get('model.length');
    }.property('@each')
});

// store.js
App.ApplicationAdapter = DS.RESTAdapter;
App.PostAdapter = DS.RESTAdapter;

后端:

app.get( '/posts', function( request, response ) {

    post = {post: {
      "id": 1,
      "title": 'A great post',
      "post_content": 'A few brilliant things to say here.',
      "tags": ['JavaScript', 'Underscore'],
      "creationDate": 'Mon, 26 Aug 2013 20:23:43 GMT'
    }};

    console.log(post); // successfully logs the post
    return response.send(post)
});

数据未显示在页面上或Ember Inspector中。我已经尝试过寻找关于Ember-Data的教程以获得一些帮助,但它们都已经过时了并且没有为我工作。

对此问题的任何见解将不胜感激!此外,我认为这是所有相关的代码,但如果有帮助我可以添加更多。

1 个答案:

答案 0 :(得分:1)

您的服务器应该返回一系列帖子:

post = {posts: [{
  "id": 1,
  "title": 'A great post',
  "post_content": 'A few brilliant things to say here.',
  "tags": ['JavaScript', 'Underscore'],
  "creationDate": 'Mon, 26 Aug 2013 20:23:43 GMT'
}]};