我创建了一个需要使用Datatables插件(https://datatables.net/extensions/buttons/#Download)的扩展。但是在尝试初始化插件时,根据帮助:
var table = $('#mytable').DataTable();
我收到一条错误消息,声明" TypeError:$(...)。DataTable不是函数"。
我知道jquery已经加载了,因为我在扩展中使用了很多而没有任何问题。
Qlik Sense Extension javascript文件的最小版本:
define( [
"qlik",
"jquery",
"text!./template.html",
"./datatables.min",
],
function ( qlik, $, template, datatables ) {
return {
template: template,
support: {
snapshot: true,
export: true,
exportData: false
},
paint: function () {
var table = $('#mytable').DataTable();
return qlik.Promise.resolve();
},
controller: ['$scope', function ( $scope ) {
}]
};
} );
template.html:
<div qv-extension style="height: 100%; position: relative; overflow: auto;" class="ng-scope">
<table>
<tr><td>Cell1</td><td>Cell2</td></tr>
</table>
</div>
我的猜测是我需要以另一种方式调用DataTable(),因为datatables.min由匿名函数组成,并且因为Qlik Sense使用require.js来导入外部文件。
通过define([])导入文件时,您不需要添加扩展名.js