元信息似乎在控制器之间共享。路由器就是这样
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-tos {{#link-to 'persons' 0 50 }}
#/persons/index/0/limit/50
地址的第二级导航使用索引0和限制9
{{#link-to 'personaddresses' id 0 9}}
点击'在上述链接 - 限制人和人的地址被设置为9。
即。该网址现在为#/persons/index/0/limit/9/person/1/personaddresses/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函数传递,该查找为商店中的每种类型设置元。
store.setMetadataFor(type, { limit: payload.limit }); // sets the metadata for "post"
但是,模型类型都不相同(一个是Person,另一个是PersonAddress);此外,商店参数不使用。使用链接到的硬编码参数(0,50和0,9)?!
不确定是否相关但是在“人”的部分内容中。模板使用以下内容。 {{#link-to 'persons' meta.next meta.limit }}
但是,无论是否单击后一个链接,都会发生上述行为。
有一个中间步骤,通过id加载个人。 (如上面的网址所示person/1
答案 0 :(得分:0)
这与meta,model.meta,extract meta或store meta几乎没有关系。
参数必须唯一地命名,无论是id,index还是limit。
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);
请注意,在网址中重复使用字段名称似乎很好,在这种情况下/index/
和/limit/