问题:如何传递
类型的对象query: {
id: bla,
email: bla-bla-bla
}
在queryParams?
像这样的简单方法
App.ArticlesController = Ember.ArrayController.extend({
queryParams: ['query'],
query: {
id: bla,
email: bla-bla-bla
}
});
当然不起作用:)
P.S。抱歉英语不好:)
答案 0 :(得分:1)
Ember查询参数不支持将对象设置为QueryParam。它只支持键值对。根据{{3}}:
查询参数是右侧显示的可选键值对 的?在URL中。例如,以下URL有两个查询 参数,排序和页面,具有相应的值ASC和2:
如果您希望将id
和email
属性绑定到查询字符串val,则必须明确指定它:
App.ArticlesController = Ember.ArrayController.extend({
queryParams: ['id, email'],
id: null,
email: null
});
如果您确实要将id
和email
直接绑定到query
对象,则可以设置观察者或计算属性(取决于您的目标),以观察到任何id
或email
属性,然后更新您在本地拥有的其他对象。
如果要简化此设置,可以考虑使用Controller Mixin在queryParams中定义一组通用属性以及相应的数组。然后,您就可以执行以下操作:
App.ArticlesController = Ember.ArrayController.extend( MyQueryParamsMixin, {
queryParams: myQueryParams
// The other properties would be set explicitly from your Mixin
// Technically, you don't even need to declare the properties since they'll get bound anyway
// thanks to queryParams, but it's good practice to let readers of your Mixin know which properties
// are in use.
});