2012-03-07 154 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

相关问题