javascript之自定义 RESTAdapter/Store 生成的查询字符串

bonelee 阅读:74 2025-12-25 22:24:30 评论:0

当我在商店上进行 .find 调用时:

this.store.find('user', { age: 24 }); 

它生成请求:

GET /user?age=24 

我不知道如何自定义从该请求生成的查询参数。我查看了 RESTSerializer 和 RESTAdapter 的源代码,但没有看到任何会生成该查询字符串的内容。

我想让 Ember 生成类似的东西:

GET /user?details=age eq 24 

而不是默认值:

GET /user?age=24 

这可能吗?

<小时 />

来源链接:

DS.Store:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/system/store.js#L44

DS.REST适配器:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/adapters/rest_adapter.js#L13

DS.REST序列化器:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/serializers/rest_serializer.js#L15

请您参考如下方法:

只需将您的请求更改为 this.store.find('user', {details:'age eq 24'});

您还需要重写 pathForType 以使 user 单数

App.UserAdapter = DS.RESTAdapter.extend({ 
  pathForType: function(type) { 
    var camelized = Ember.String.camelize(type); 
    return camelized; //Ember.String.pluralize(camelized); 
  }, 
}); 


标签:JavaScript
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号