ember 元信息似乎由控制器共享
ember meta information seems to be shared by controllers
元信息。 index 和 limit 在 link-tos 中用于分页。
元信息似乎在控制器之间共享。路由器就是这样
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' });
});
顶级导航有 link-tos,索引为 0,限制为 50
{{#link-to 'persons' 0 50 }}
url 在 #/persons/index/0/limit/50
处是正确的
地址的二级导航使用索引0和限制9
{{#link-to 'personaddresses' id 0 9}}
在上述 'clicking' 之后 link- 将人员和人员地址的限制设置为 9。
即。 url 现在是 #/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 函数传递,该函数为商店中的每种类型设置了 meta。
store.setMetadataFor(type, { limit: payload.limit }); // sets the metadata for "post"
但是,两者的模型类型都不一样(一个是Person,一个是PersonAddress);此外,未使用存储参数。在 link-to 中传递的硬编码参数(0,50 和 0,9)被使用了?!
不确定它是否相关,但在 'persons' 模板的部分中使用了以下内容。 {{#link-to 'persons' meta.next meta.limit }}
但是,无论是否单击后者 link-to,都会发生上述行为。
有一个中间步骤可以通过 id 加载个人。 (如上图url as person/1
这与 meta 关系不大,model.meta,提取 meta 或存储 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/
元信息。 index 和 limit 在 link-tos 中用于分页。
元信息似乎在控制器之间共享。路由器就是这样
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' });
});
顶级导航有 link-tos,索引为 0,限制为 50
{{#link-to 'persons' 0 50 }}
url 在 #/persons/index/0/limit/50
地址的二级导航使用索引0和限制9
{{#link-to 'personaddresses' id 0 9}}
在上述 'clicking' 之后 link- 将人员和人员地址的限制设置为 9。
即。 url 现在是 #/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 函数传递,该函数为商店中的每种类型设置了 meta。
store.setMetadataFor(type, { limit: payload.limit }); // sets the metadata for "post"
但是,两者的模型类型都不一样(一个是Person,一个是PersonAddress);此外,未使用存储参数。在 link-to 中传递的硬编码参数(0,50 和 0,9)被使用了?!
不确定它是否相关,但在 'persons' 模板的部分中使用了以下内容。 {{#link-to 'persons' meta.next meta.limit }}
但是,无论是否单击后者 link-to,都会发生上述行为。
有一个中间步骤可以通过 id 加载个人。 (如上图url as person/1
这与 meta 关系不大,model.meta,提取 meta 或存储 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/