2015-01-26 55 views
0

元信息。 index-limit在link-tos中用於分頁。ember元信息似乎被控制器共享

元信息似乎在控制器之間共享。路由器是這樣

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' }); 
    }); 

頂層導航具有鏈路-TOS索引爲0和極限50

{{#link-to 'persons' 0 50 }} 

URL是否正確在#/persons/index/0/limit/50

的第二級別導航爲地址使用索引0和極限9

{{#link-to 'personaddresses' id 0 9}} 

'點擊'後以上鍊接 - 對於BOTH人員和personaddresses的限制設置爲9.

ie。網址是現在#/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)用於?!

不確定它是否相關,但在「人員」模板的部分中使用了以下內容。然而,上述行爲發生在後一個鏈接是否被點擊。

有一箇中間步驟,通過id加載一個人。 (如上面的網址視爲person/1

回答

0

這有一點做與元,model.meta,提取元或存儲元。

的參數必須唯一命名是否其ID,索引或限制。

this.resource('persons', { path: 'persons/index/:personsindex/limit/:personslimit' } 

this.resource('personaddresess', { path: 'personaddresess/:person_id/index/:paindex/limit/:palimit' }); 
    }); 

然後在路線...匹配那些PARAMS。

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/ and /limit/