(人为)例如收集的网址深度> 1嵌套问题的REST资源URL:ExtJS4:在使用协会
VERB /leagues
VERB /leagues/{leagueId}/teams
VERB /leagues/{leagueId}/teams/{teamId}/players
的目标是配置我的协会和代理来自动瞄准这些URL。
目前,我对每个联赛的典范,队和球员,在
(联盟)---的hasMany的方向的hasMany联想链 - >(团队)--- hasMany - >(Player)
与拥有模型的Id在相关模型中用作外键。 (即每个Team
有leagueId
相当于它的id
拥有真实League
,每个Player
有一个TeamId
相当于它的id
拥有真实Team
)在解决这个
一个尝试可以发现here。但是,它并不适合我。我最初的尝试重写代理的buildUrl
方法:
buildUrl: function(request) {
var url = this.getUrl(request),
ownerId = request.operation.filters[0].value;
url = url.replace('{}', ownerId);
request.url = url;
return Ext.data.proxy.Rest.superclass.buildUrl
.apply(this, arguments);
},
这就为1(VERB /leagues/{leagueId}/teams
)URL资源深度的作品完美。问题是,当我做这样的事情:
League.load(1, {
callback: function(league) {
league.teams().load({
callback: function(teams) {
// all good so far
var someTeam = teams[0];
someTeam.players().load({
// problem here. someTeam.players() does not have a filter
// with leagueId as a value. Best you can do is
// GET/leagues/undefined/teams/42/players
});
}
});
}
});
我需要做什么才能得到我需要建立链接的buildUrl
方法的所有信息覆盖?我不想每次都手动添加一个筛选器 - 这种方式会使目标失败,我可能会每次都设置代理。
感谢您的帮助