我正在学习ember js,我遇到了ember-light-table作为数据表的替代品。
我只想在表格中显示一些静态数据。因此,我不是创建mixin和组件,而是将代码直接写入路径文件。 (不确定事情是否会以这种方式发挥作用)。
以下是我的路线档案
import Route from '@ember/routing/route';
import Table from 'ember-light-table';
import { computed } from '@ember/object';
export default Route.extend({
table : null,
columns: computed(function() {
return [{
label: 'Email',
valuePath: 'email'
}, {
label: 'Name',
valuePath: 'name'
}];
}),
rows: computed(function() {
return [{
"email":"abc@gmail.email",
"name":"Abc"
}, {
"email":"xyz@gmail.email",
"name":"Xyz"
}];
}),
init(){
this._super(...arguments);
let table = new Table(this.get('columns'),this.get('rows'));
console.log("table = ",table);
this.set('table', table);
}
});
模板文件
{{#light-table table height='65vh' as |t|}}
{{t.head fixed=true }}
{{#t.body canSelect=false as |body| }}
{{/t.body}}
{{/light-table}}
我在控制台中遇到错误:
错误:断言失败:[ember-light-table]表必须是表的实例
我也见过文档代码和其他博客,代码似乎相同,但不确定我是否遗漏了某些内容。
提前致谢。
答案 0 :(得分:1)
不要在路由器中执行此操作,而是创建一个组件
现在你的路由器也有问题,因为路由器中没有init挂钩,但你想在组件中使用init挂钩。
将所有路由器代码放在组件中,除了导入路由器和扩展路由器当然以及组件模板中的模板。在您现在使用的模板中,调用您的组件,这应该可以解决问题