Ember.js 余烬数据:(最佳实践)find()的动态参数

Ember.js 余烬数据:(最佳实践)find()的动态参数,ember.js,ember-data,Ember.js,Ember Data,也许这只是我的一个大脑缺陷,但我真的困惑了很多天 我有一个搜索公式,其中包含许多可配置的更改参数,如下所示: ID、姓名、姓氏、日期1、 这些参数没有层次顺序,用户可以在表单内外配置它们 queryparameter的余烬方式是:{ID:…,lastname:…,date1:…},但是如果我不知道可以面对哪些参数,我该怎么办?在我们的应用程序中,有10到40个不同的模块可配置参数 我需要帮助找到解决这个问题的“最佳实践”。 我会很高兴,如果有人能给我一个如何解决这个问题的影响 向您致意,Jan如

也许这只是我的一个大脑缺陷,但我真的困惑了很多天

我有一个搜索公式,其中包含许多可配置的更改参数,如下所示:

ID、姓名、姓氏、日期1、

这些参数没有层次顺序,用户可以在表单内外配置它们

queryparameter的余烬方式是:{ID:…,lastname:…,date1:…},但是如果我不知道可以面对哪些参数,我该怎么办?在我们的应用程序中,有10到40个不同的模块可配置参数

我需要帮助找到解决这个问题的“最佳实践”。 我会很高兴,如果有人能给我一个如何解决这个问题的影响


向您致意,Jan

如果我理解正确,您希望找到一个可重用的解决方案,以避免为
@store.find的不同查询参数列出大量
If
s

为了使其可重复使用,您可以使用single find,如下所示:

this.store.find('myModel', queryHash)
并在调用之前构建
queryHash
。例如,可以有一组复选框和基于所有复选框值的计算属性。此计算属性将生成您的哈希,例如:

queryHash: Ember.computed "lastName", "date1", function() {
   query = {}
   if(this.get("lastName")) { query.lastName = this.get("lastName"); }
   if(this.get("date1")) { query.date1 = this.get("date1"); }
   query
});
缺点是您需要知道用户当前路线中可用(但不需要检查)的所有可能选项(例如,通过某种输入或表单)


另一方面,如果您不能说出名称是什么(或者名称有多少),您至少可以将所有用户提供的数据保存在某种数组中并枚举,将所有正确的哈希键和值添加到
查询
对象中。

谢谢,这是我选择的方式,但是余烬数据也有一些问题。我有嵌套的json响应和自定义序列化程序。在这个配置中,我最终得到了两个存储对象。。但这个问题很难解释。一个对象的id为1,另一个对象的值为queryparams变量>>id:?identummer=CL00000001&var2=x,依此类推,。。。很难在jsbin或fiddle中复制…很难说是什么导致了问题。我假设原因在于您的自定义序列化程序中的某个地方。您可以问另一个问题,包括您的序列化程序、模型和适配器代码以及来自服务器的确切响应,以便其他人正确地模拟它。