从服务器重新加载数据

Reloading ember data from server

本文关键字:加载 数据 服务器 新加载      更新时间:2023-09-26

转换到页面后,我试图从服务器重新加载存储数据。

在这种情况下,我所指的过渡是从索引页到特定页面的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:烬数据:1.0.0-beta.7。f87cba88 ember.js: 3521

DEBUG: Handlebars: 1.1.2 ember.js:3521

调试:jQuery 2.1.0

谢谢!

查找记录:如果您提供一个数字或字符串作为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
  }
});