gpt4 book ai didi

javascript - VueJS 在内联模板组件中重新编译 HTML

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:17 26 4
gpt4 key购买 nike

我已经将 bootstrapTable ( https://github.com/wenzhixin/bootstrap-table ) 包装到一个指令中,如下所示:

Vue.directive('bootstraptable', {
priority: 1000,

params: ['url', 'resource-name'],

bind: function () {

var _self = this;

$(this.el)
.bootstrapTable({
pagination: true,
pageSize: 15,
pageList: [],
sidePagination: 'server',
url: this.params.url,
queryParams: function (params) {
return params;
},
cookie: true,
cookieExpire: '24h',
cookieIdTable: this.params.resourceName + '-table',
locale: 'it-IT'
}).on('load-success.bs.table', function (e, data) {

$('[data-toggle="tooltip"]').tooltip();
_self.vm.$compile(_self.vm.$el);
});
},
update: function (value) {
$(this.el).val(value)
},
unbind: function () {
$(this.el).off().bootstrapTable('destroy')
}
});

从服务器返回的 JSON 包含一个带有 v-on 指令的按钮,因此我必须重新编译注入(inject)的 HTML 行以使按钮指令正常工作。无论如何,似乎以下代码不起作用:

_self.vm.$compile(_self.vm.$el);

我是否漏掉了一些明显的东西?

最佳答案

需要在必须编译的元素上调用 $compile 方法,而不是在 vm 根元素上调用。

我改了行:

_self.vm.$compile(_self.vm.$el);

与:

            _.each($('[recompile]'), function(el){
_self.vm.$compile(el);
});

并为所有需要重新编译的HTML元素添加了“recompile”属性。

这似乎按预期工作,如果有更传统的方法可以做到这一点,请毫不犹豫地回答。

关于javascript - VueJS 在内联模板组件中重新编译 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com