Ember Resource URL:如何使其使用其他值而不是ID?
问题描述:
我需要使用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)需要被替换,但是如何?
答
您可能想要将url
定义为函数:
units: {
url: function() {
// your custom code here:
return '/api/other/%@'.fmt(this.get('fodder'));
}
}
谢谢你,我已经设法找到一种方法,将你的答案作为线索。 url函数中的'this'表示'units',而不是schema或类本身,所以this.get('fodder')'什么也不返回。然而,进一步的尝试发现该函数接受一个参数,这可能是默认情况下给出的。该参数是项目本身,在这种情况下是App.OtherModule。通过用这个参数替换'this',你可以访问类本身。 – Stargazer 2012-03-08 00:35:36
太棒了。很高兴我可以帮助(虽然,以迂回的方式);) – Josh 2012-03-08 18:36:17
你可以发布你找到的解决方案吗?谢谢! – Alfred 2012-03-10 13:10:40