我正在使用Ember的queryParams: http://emberjs.com/guides/routing/query-params/
查询参数是动态的,因此基本控制器不知道属性是什么。例如。它可以是['q', 'page']
或['q', 'foo', 'bar']
或任何其他排列。
如何获取查询参数的参数对象,以便在不知道实际查询参数属性是什么的情况下将其传递给store.find('modelName', params)
?
执行此操作的一种方法是在控制器内部进行以下操作:
var params = {};
this.get('queryParams').forEach(function(param){
params[param] = this.get(param);
}, this);
this.store.find('widget', params);
...但必须有一种更优雅的方式来做到这一点。
答案 0 :(得分:0)
我不确定这是否更好,但我目前做的是以下内容:
this.store.find('widget',
this.getProperties(this.getProperties('queryParams').queryParams)
)
这将获取控制器上的所有查询参数,并将它们提供给model.find方法。我不确定这种方法是否存在负面影响,但它比迭代每个属性更简洁。