ajax请求与ember-data相关的模型

时间:2013-10-21 03:22:30

标签: ember-data

说我有模型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)的过渡作弊表,但它并没有真正帮助我。

1 个答案:

答案 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