javascript - EmberJS: Object as Query Param to Refresh Model -
i followed query params guide (http://guides.emberjs.com/v1.11.0/routing/query-params/) , worked great. specifically, refreshing model did wanted.
i'm moving filter json-api spec , filtering takes place in filter object. rather than:
http://localhost:3000/accounts?id=1 the server responds to:
http://localhost:3000/accounts?filter[id]=1 i tried query params work refreshing model based on object, doesn't seem update.
// app/controllers/accounts/index.js import ember 'ember'; export default ember.controller.extend({ queryparams: ['filter', 'sort'], filter: {}, sort: '-id' }); // app/routes/accounts/index.js import ember 'ember'; export default ember.route.extend({ queryparams: { filter: { refreshmodel: true }, sort: { refreshmodel: true } }, model: function(params) { return this.store.find('account', params); }, }); // template <th>{{input type="text" placeholder="id" value=filter.id}}</th> is possible have query params work object?
this answer of ember version 1.13.0-beta.1+canary.
the short answer: no. query params not work object.
the long answer:
as of now, private function named _serializequeryparams in router serializes queryparams.
_serializequeryparams(targetroutename, queryparams) { var groupedbyurlkey = {}; foreachqueryparam(this, targetroutename, queryparams, function(key, value, qp) { var urlkey = qp.urlkey; if (!groupedbyurlkey[urlkey]) { groupedbyurlkey[urlkey] = []; } groupedbyurlkey[urlkey].push({ qp: qp, value: value }); delete queryparams[key]; }); (var key in groupedbyurlkey) { var qps = groupedbyurlkey[key]; var qp = qps[0].qp; queryparams[qp.urlkey] = qp.route.serializequeryparam(qps[0].value, qp.urlkey, qp.type); } }, qp.urlkey evaluate 'filter' in example, , object serialized 'object [object]'. though override serializequeryparam method in route, wouldn't because queryparam key still 'filter', , you'd need 'filter%5bid%5d'
based on this comment in ember discussion forum, sounds object query params unlikely, , you'd better off flattening , unflattening filtered fields.
Comments
Post a Comment