2015-03-17 6 views
0

Я использую queryParams Эмбера: http://emberjs.com/guides/routing/query-params/ember.js: экстракт queryParams объект

В параметры запроса являются динамическими, поэтому базовый контроллер не знает, что эти свойства будут. Например. это может быть ['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

Я не уверен, если это лучше, но то, что я в настоящее время сделать следующее:

this.store.find('widget', this.getProperties(this.getProperties('queryParams').queryParams) )

Это будет принимать все параметры запроса на контроллере и обеспечить их методом Model.find , Я не уверен, есть ли негативные последствия для этого подхода, но он немного более краток, чем повторение каждого свойства.

Смежные вопросы