是否有一种直接从javascript对象添加控制器属性的简单方法?
与必须手动指定我想要在3个地方使用的每个查询参数相反:queryParams,QP控制器属性和路由queryParams [key] .refreshModel = true ...我只想维护这些内容一个对象并将其更新到所有这些地方:
const cfg = {
defaultQueryParams: {
q: null,
paging: '18',
search_sort: 'relevance',
search_title: null,
search_page: null,
filter_breadcrumb: [],
filter_price: [],
filter_size_apparel: [],
filter_color: []
}
};
在我试过的控制器中:
export default Ember.Controller.extend({
queryParams: Object.keys(cfg.defaultQueryParams), // works great!
init() {
this._super(...arguments);
this.addObject(cfg.defaultQueryParams); // doesn't work: "this.addObjects is not a function"
// same with addObjects, setObjects
},
...
});
我也试过迭代JS对象并使用setter。它适用于字符串,但不适用于空数组:
for (let [key, value] of Object.entries(cfg.defaultQueryParams)) {
this.set(key, value);
}
数组作为属性添加,但在控制台中是未定义的,而不是Array [0]
我是不是想要这样做,或者想要这样做?
轻松一点! Ember newb! :d