我试图使用ember-data,我有一个如下所示的数据模型:
我有多本书,每本书都有页面。 通常,用户只会阅读几本书,而且可能会有很多书。获得一本书的所有页面实际上都是在后端超软。
所以这就是我想做的事情: / books显示所有书籍标题,摘要...(不加载他们的页面)。 / books / {id} / pages返回最高页面(但加载整本书)。 / books / {id} / pages / {id}返回一个页面和一些信息(无需加载或加载整本书,如果它还不存在的话)。
所以我写了这些路线:
App.PagesIndexRoute = Ember.Route.extend({
model: function (params) {
var books = this.modelFor("books");
// Find all the rules for this book
return this.store.find('rules', {"books": books.id});
}
});
App.PagesGetRoute = Ember.Route.extend({
model: function (params) {
var books = this.modelFor("books");
this.store.find('rules', {"books": books.id});
return this.store.find('rules', params.rules_id);
}
});
这非常有效。只要用户留在一本书中。当用户决定更改书籍时。另一本书的数据尚未加载,因此它是空的。
我真的不能做一个getAll('规则')因为这个查询太大了。 我不确定ember-data实际上应该能够处理这些东西。如果情况并非如此,我将不幸地放弃它,这是一种耻辱,因为我希望能节省时间。
编辑这里是我的路线,因为它可能实际上是一个错误:
App.Router.map(function () {
// Add your routes here
this.resource('news', function() {
this.route('get', { "path": "/:news_id"});
});
this.resource('books', function() {
this.resource('books', {"path": ":books_id"}, function() {
this.resource('pages', function() {
this.route('get', { "path": ":pages_id"});
});
});
});
});
这是一个小提琴:http://jsfiddle.net/qzk655gk/6/
答案 0 :(得分:0)
升级到更新版本后。这停止了:
- "ember": "1.6.1",
+ "ember": "1.8.1",
"handlebars": "1.3.0",
- "ember-data": "1.0.0-beta.8"
+ "ember-data": "1.0.0-beta.12"