Aurelia与jquery数据表使用错误

时间:2016-02-20 17:35:50

标签: javascript jquery datatables aurelia jspm

我在使用Aurelia的jquery数据表时遇到问题。 我正在尝试导入数据表,但没有运气。当我尝试初始化它时,它给了我错误

  

未处理的承诺拒绝TypeError:$(...)。dataTable不是函数(...)

我的打字稿代码如下:

import * as $ from 'jquery';
import * as dataTable from 'datatables';
export class App {
router: Router;

constructor() {}
attached() {
    $('#example').dataTable({
        "paginate": true,
        "pageLength": 25
    });
} 
 activate() {  
    console.log("app.activate");
}.... 

任何指针? 干杯:)

2 个答案:

答案 0 :(得分:2)

这里有几个问题会给你带来麻烦。

首先,jQuery导出一个默认变量$。因此,您可以执行以下操作以在ViewModel中导入jQuery:

mylibs/hi

其次,DataTables插件扩展了jQuery的库原型,将其自身添加到jQuery对象中。因此,要使其工作,您需要先包含jQuery,然后再包含DataTables插件。

我无法看到客户端使用的默认导出,因此这应该为您提供以下功能代码:

import 'jquery';

除非我忽略了一个特定的细节,否则我认为这应该可以解决问题。如果没有,那么在下面发表评论,我们将以任何一种方式对其进行排序。

答案 1 :(得分:1)

[求助]我通过在activate()方法中初始化datatable并让我的导入保持原样来实现它...

activate() {  
   datatable();
   console.log("app.activate");
}.... 

进一步尝试,发现这也有效......

import * as $ from 'jquery';
import "datatables";
//import * as dataTable from "datatable";

export class DatatablesExample {    
   //activate() {
   //    dataTable();
   //}
    attached() {
        $('#example').dataTable();
    }
}

一直在解决我的问题是导入jQuery。 但我想知道为什么推荐的导入不适用于jquery ......

  

从'jquery'导入$;