2012-03-07 152 views
2

我需要使用Ember資源發送其查詢使用其架構中的值之一。Ember Resource URL:如何使其使用其他值而不是ID?

比方說,我定義這個資源:

App.SomeModule = Ember.Resource.define(
{ 
    url: './api/some', 
    schema: 
    { 
     id: Number, 
     fodder: Number, 
     whatever: Number, 
     units: 
     { 
      type: Ember.ResourceCollection, 
      itemType: 'App.OtherModule', 
      url: './api/other/%@' 
     } 
    } 
}); 

當這種資源需要加載它的「單位」,它會使用URL「API /其它/(ID)自動發送一個查詢。然而。我想(%f)需要被替換,但是如何?

回答

2

您可能想要將url定義爲函數:

units: { 
    url: function() { 
    // your custom code here: 
    return '/api/other/%@'.fmt(this.get('fodder')); 
    } 
} 
+0

謝謝你,我已經設法找到一種方法,將你的答案作爲線索。 url函數中的'this'表示'units',而不是schema或類本身,所以this.get('fodder')'什麼也不返回。然而,進一步的嘗試發現該函數接受一個參數,這可能是默認情況下給出的。該參數是項目本身,在這種情況下是App.OtherModule。通過用這個參數替換'this',你可以訪問類本身。 – Stargazer 2012-03-08 00:35:36

+0

太棒了。很高興我可以幫助(雖然,以迂迴的方式);) – Josh 2012-03-08 18:36:17

+0

你可以發佈你找到的解決方案嗎?謝謝! – Alfred 2012-03-10 13:10:40

相關問題