我在Ember有一个模型,有两个动作/组件相关联。第一个runQuery
查询商店并检索结果。理想情况下,第二个downloadCSV
应取模型属性headers
和rows
(从PapaParse生成并格式化),并在单击按钮时将其导出为csv。
runQuery(id, uid) {
const queryData = {id, uid};
this.store.find('queryResult', queryData).then( results => {
let result = results.toArray().get(0);
this.set('controller.model.result', result);
this.set('controller.model.headers', results.content[0]._data.headers);
this.set('controller.model.rows', results.content[0]._data.rows);
});
},
downloadCSV(headers, rows) {
exportCSV(headers, rows)
}
我使用会徽模板将csvData传递回下载CSV方法:
csv-data action="downloadCSV" headers=model.headers rows=model.rows
但是当我尝试运行该方法时,尽管可以在模板中访问,但标题和行总是未定义的。 (我可以在包含{{model.headers}}
/ {{model.rows}}
的页面上看到它并迭代它们以使用徽章each
方法显示表格
我发现Ember Data模型不支持复杂的对象类型。是否有一种方法可以使标题和行对象在生成后全局可访问,以便下载数据方法可以正确使用它们?