【问题标题】:ajax request for related model with ember-data带有 ember-data 的相关模型的 ajax 请求
【发布时间】:2013-10-29 10:17:15
【问题描述】:

假设我有模型 custom_route 和 user。要获取属于用户 ajax 请求的路由的数据,看起来像“/users/:user_id/routes”必须发送到服务器。现在..我如何获取 ember-data 来发送这些获取请求?

当我像这样设置与此请求相关的特定路由时:

App.UserCustomRoutesRoute = Em.Route.extend({ 模型:函数(){

        return this.store.find('user_custom_route');      });

...请求只是'/user_custom_route'

我查看了 beta 1 (https://github.com/emberjs/data/blob/master/TRANSITION.md) 的过渡备忘单,但它并没有真正帮助我。

【问题讨论】:

    标签: ember-data


    【解决方案1】:

    下方更新

    我找到了解决方案,但我不知道这是否真的可行。首先,我使用 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 在调用 App.UserCustomRoutesRoute 时尚未设置(当用户通过其相关地址('url#/users/:user_id/custom_routes')进入站点时)。所以我必须进行身份验证检查,如果成功,则在调用相关商店之前回复 user_id

     App.UserCustomRoutesRoute = Em.Route.extend({
            model: function() {
                var self = this;
                console.log('user custom routes route');
                return Em.$.get('loggedIn').then(function(promise) {
                    return self.store.find('user_custom_route', {user_id: promise.user_id});
                });
            } 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多