从服务器重新加载ember数据

时间:2014-06-10 22:10:50

标签: javascript ember.js ember-data

我正在尝试在转换到页面后从服务器重新加载商店数据。

我在这种情况下引用的转换是从索引页面到id的特定页面。

这是我的代码:

App.Board = DS.Model.extend({
    title: DS.attr('string'),
    boardItems: DS.hasMany('BoardItem'),
});

App.BoardItem = DS.Model.extend({
    title: DS.attr('string'),
    board: DS.belongsTo('Board')
});

App.BoardIndexRoute = Ember.Route.extend({
    model: function() {
        return {
            title: 'Boards List',
            boardItems: this.store.find('board')
        }
    }
});

App.BoardShowRoute = Ember.Route.extend({
    model: function(params) {
        // this.store.reloadRecord('BoardItem'); - tried this, didn't work :(
        var boardData = this.store.findById('board', params.board_id);

        return boardData;
    }
});

会发生什么: 索引 - 加载一个板列表,带有空的boardItems数组(我不想加载索引上的所有数据)

然后单击指向特定电路板的链接,转换到该电路板,但数据为空且没有向服务器发出请求。

我尝试了各种方法重新加载它,但都失败了......

这是调试信息,如果有帮助的话:

DEBUG:Ember:1.5.1 ember.js:3521

DEBUG:Ember数据:1.0.0-beta.7.f87cba88 ember.js:3521

DEBUG:Handlebars:1.1.2 ember.js:3521

DEBUG:jQuery:2.1.0

谢谢!

1 个答案:

答案 0 :(得分:0)

  

Finding Records:如果您提供一个数字或字符串作为store.find()的第二个参数,Ember Data将尝试检索具有该ID的记录。这将返回履行所请求记录的承诺:

App.BoardShowRoute = Ember.Route.extend({
  model: function(params) {
    // Providing both the model name, and board identifier
    // Make sure the parameter exists.

    // console.debug('My board identifier is', params.board_id');

    return this.store.find('board', params.board_id); // => GET /boards/:board_id
  }
});