Ember.js 余烬元信息似乎由控制器共享
元信息。索引和限制在链接tos中用于分页 元信息似乎在控制器之间共享。路由器就是这样Ember.js 余烬元信息似乎由控制器共享,ember.js,ember-data,Ember.js,Ember Data,元信息。索引和限制在链接tos中用于分页 元信息似乎在控制器之间共享。路由器就是这样 this.resource('persons', { path: 'persons/index/:index/limit/:limit' }, function() { this.resource('person', { path: 'person/:person_id' }, function() { this.resource('personaddresess', { path: 'perso
this.resource('persons', { path: 'persons/index/:index/limit/:limit' }, function() {
this.resource('person', { path: 'person/:person_id' }, function() {
this.resource('personaddresess', { path: 'personaddresess/:person_id/index/:index/limit/:limit' });
});
顶级导航具有索引为0且限制为50的链接到
{{#link-to 'persons' 0 50 }}
url在/persons/index/0/limit/50处是正确的
地址的二级导航使用索引0和限制9
{{#link-to 'personaddresses' id 0 9}}
在“单击”上述链接后,个人和角色地址的限制都设置为9
也就是说,url现在是/persons/index/0/limit/9/person/1/personaddress/1/index/0/limit/9
这两条路线都使用以下方法从REST获取模型
model: function(params) {
var index = numeral().unformat(params.index);
var limit = numeral().unformat(params.limit);
return this.store.find(yaddayadda);
现在,元数据似乎在控制器之间共享。由于每个控制器都有自己的模型,所以每个控制器不应该有自己的元吗
App.PersonsController = Ember.ObjectController.extend({
meta: function() {
return this.get('model.meta');
}.property('model.meta'),
});
App.PersonAddressController = Ember.ObjectController.extend({
meta: function() {
return this.get('model.meta');
}.property('model.meta'),
});
meta在每次查找后都会传递一个extractMeta函数,为存储上的每种类型设置meta
store.setMetadataFor(type, { limit: payload.limit }); // sets the metadata for "post"
但是,两种模型类型都不相同,一种是Person,另一种是PersonAddress;此外,不使用存储参数。使用链接中传递的硬编码参数0,50和0,9
不确定其是否相关,但在“人员”模板的部分中使用了以下内容。{{链接到'persons'meta.next meta.limit}}但是,无论是否单击后一个链接,上述行为都会发生
有一个中间步骤,通过id加载个人。如上面的url所示,这与meta、model.meta、extract meta或store meta几乎没有关系 无论参数的id、索引或限制如何,参数都必须唯一命名
this.resource('persons', { path: 'persons/index/:personsindex/limit/:personslimit' }
this.resource('personaddresess', { path: 'personaddresess/:person_id/index/:paindex/limit/:palimit' });
});
然后在途中。。。匹配那些参数
model: function(params) {
var index = numeral().unformat(params.paindex); //using int but wtcmb
var limit = numeral().unformat(params.palimit);
return this.store.find(yaddayadda);
请注意,在url中重复使用字段名似乎很好,在本例中为/index/和/limit/