我正在尝试在转换到页面后从服务器重新加载商店数据。
我在这种情况下引用的转换是从索引页面到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
谢谢!
答案 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
}
});