说我有模型custom_route和用户。要获取属于用户的路由的数据,必须将看起来像“/ users /:user_id / routes”的ajax请求发送到服务器。现在..我如何获得发送这些获取请求的ember-data?
当我设置与此请求相关的特定路线时,如下所示:
App.UserCustomRoutesRoute = Em.Route.extend({ model:function(){
return this.store.find('user_custom_route'); });
...请求只是'/ user_custom_route'
我看了一下beta 1(https://github.com/emberjs/data/blob/master/TRANSITION.md)的过渡作弊表,但它并没有真正帮助我。
答案 0 :(得分:0)
以下更新
我找到了一个解决方案,但我不知道这是不是真的要走了。首先,我使用findQuery调用设置路由:
App.UserCustomRoutesRoute = Em.Route.extend({
model: function() {
return this.store.find('user_custom_route', {user_id: this.controllerFor('user').get('user_id')});
}
});
然后我迷上了配置get请求的适配器方法(findQuery和buildUrl)。
App.UserCustomRouteAdapter = DS.RESTAdapter.extend({
buildURL: function(type, id) {
return 'users/' + id + '/routes';
},
findQuery: function(store, type, query) {
return this.ajax(this.buildURL(type.typeKey, query.user_id), 'GET');
}
});
这样设置请求的格式为'users /:user_id / routes'。
<强>更新强>
我不得不改变App.UserCustomRoutesRoute
的模型方法。调用user_id
时,App.UserController
的{{1}}大部分时间尚未设置(当用户通过其相关地址('url#/ users /:user_id /)进入网站时custom_routes')。所以我必须进行身份验证检查,如果在调用相关商店之前成功,则会回复App.UserCustomRoutesRoute
。
user_id