【发布时间】:2017-04-05 16:17:02
【问题描述】:
我在 Bootstrap 中使用togglable tabs 组件。我想在每个选项卡中都有一个表格。每个都显示一个电子邮件日志表(单击事件、打开事件等)。我还希望每个表仅在用户单击该选项卡后才使用 Vue 资源动态加载,并且资源/组件仅加载一次(一旦我们从 AJAX 获得数据,就不要刷新它)。
我该如何设置?我目前有一个 email-table 组件和一个 email-table-template 模板来呈现表格,但我不确定如何设置它们以在用户单击选项卡时呈现自己,并且只调用 AJAX 一次。
这是我当前用于检测选项卡开关和更新 Vue 组件的代码:
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var email_event = $(e.target).data('email-event');
switch(email_event) {
case 'click':
createClick();
break;
// rest of the cases
}
function createClick() {
var click_events = Vue.resource('/api/email_logs/click_events');
click_events.get().then((response) => {
new Vue({
el: '#table-click',
data: {
searchQuery: '',
gridColumns: ['campaign_id', 'target_link_name', 'target_link_url', 'created_at'],
gridData: response.body
}
})
});
感谢任何见解。非常感谢!
【问题讨论】:
-
您能否创建一个 jsfiddle,说明您尝试过的内容以及出错的地方。
-
虽然你想要达到的效果在gif中已经很清楚了,但我觉得你的问题可能太国外了。我建议您花几个小时阅读官方指南,然后再提出您觉得难以解决的任何具体问题。
标签: javascript vue-component vue-resource vue.js