我正在尝试获取特定vue-tables-2包实现的帮助。为了做到这一点,我正在尝试设置一个jsfiddle并且即使是最基本的实现仍然会出现t is undefined
错误。有没有其他人遇到这个错误?我怀疑它与依赖项的导入有关,但似乎无法解决它。
我很欣赏有关如何启动和运行jsfiddle的任何建议。
HTML
<div id="app">
<div class="col-md-8 col-md-offset-2">
<div id="people">
<v-server-table url="https://jsonplaceholder.typicode.com/users" :columns="columns" :options="options">
</v-server-table>
</div>
</div>
</div>
的JavaScript
Vue.use(VueTables.ServerTable);
new Vue({
el: "#people",
data: {
columns: ['name', 'username'],
options: {
// see the options API
}
}
});
答案 0 :(得分:2)
服务器似乎没有按照文档中的说明提供vue-tables-2
所需的正确数据格式:
您需要返回具有两个属性的JSON对象:
- data:array - 具有相同键的行对象数组。
- count:number - 限制前的总计数。
如果您无法更改服务器返回的内容,则可能必须使用客户端表,您可以使用axios
获取数据。
使用axios
获取数据的最小客户端表示例。
https://jsfiddle.net/kbpq5vb3/38/
答案 1 :(得分:0)
如果您无法更改服务器返回的内容,则可能必须使用 客户端表,您可以使用axios获取数据。
不一定。您可以坚持使用服务器组件,并使用requestAdapter
和responseAdapter
选项来模拟请求和对预期格式的响应。
例如(使用Github的API):
<div id="app">
<h3>
Vue Tables 2 - Server Side Demo
</h3>
<div class="col-md-8 col-md-offset-2">
<div id="people">
<v-server-table url="https://api.github.com/users/matfish2/repos" :columns="columns" :options="options">
</v-server-table>
</div>
</div>
</div>
的JavaScript
Vue.use(VueTables.ServerTable);
new Vue({
el: "#people",
methods: {
formatDate(date) {
return moment(date).format('DD-MM-YYYY HH:mm:ss');
}
},
data: {
columns: ['name', 'created_at', 'updated_at', 'pushed_at'],
tableData: [],
options: {
perPage: 25,
perPageValues: [25],
orderBy: {
column: 'name',
ascending: true
},
requestAdapter(data) {
return {
sort: data.orderBy,
direction: data.ascending ? 'asc' : 'desc'
}
},
responseAdapter({data}) {
return {
data,
count: data.length
}
},
filterable: false,
templates: {
created_at(h, row) {
return this.formatDate(row.created_at);
},
updated_at(h, row) {
return this.formatDate(row.updated_at);
},
pushed_at(h, row) {
return this.formatDate(row.pushed_at);
}
}
}
}
});