Javascript Aurelia with jquery数据表使用错误

Javascript Aurelia with jquery数据表使用错误,javascript,jquery,datatables,aurelia,jspm,Javascript,Jquery,Datatables,Aurelia,Jspm,我在Aurelia中使用jquery数据表时遇到问题。 我正在尝试导入数据表,但运气不好。当我尝试初始化它时,它会给我错误信息 未处理的承诺拒绝类型错误:$(…)。dataTable不是函数(…) 我的typescript代码如下: import * as $ from 'jquery'; import * as dataTable from 'datatables'; export class App { router: Router; constructor() {} attached()

我在Aurelia中使用jquery数据表时遇到问题。 我正在尝试导入数据表,但运气不好。当我尝试初始化它时,它会给我错误信息

未处理的承诺拒绝类型错误:$(…)。dataTable不是函数(…)

我的typescript代码如下:

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");
}.... 
有什么建议吗?
干杯:)

这里有几个问题会让你头疼

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

import 'jquery';
其次,DataTables插件扩展了jQuery的库原型,将自己添加到jQuery对象中。因此,要使其正常工作,首先需要包括jQuery,然后是DataTables插件

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

import 'jquery';
import 'datatables';

除非我忽略了一个特别的细节,否则我相信这应该能解决问题。如果没有,请在下面添加一条注释,我们将以任何方式对其进行排序。

[p>[SOLVED]我通过在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();
    }
}
Quess我的问题一直是导入jQuery。 但是我想知道为什么推荐的导入不适用于jquery

从“jquery”导入美元


我不知道datatables是什么,但我会尝试使用
import$from'jquery'
import'jquery'
以及
import'datatables'
嗨,尝试了不同的方法,发现当我在activate()方法
>activate(){>dataTable();…>}中将导入的dataTable作为函数调用时,它就可以工作了当我尝试console.log时,您建议的导入方式让我看到jquery“未定义”。您如何以及在何处将jquery中的“$”导出记录到控制台中?因为如果您从应用程序外部执行此操作,我相信它不会工作,因为模块系统内部的所有内容都是从全局名称空间封装的。如果您要console.log($);从attached()中,您肯定会看到它显示了一些内容。嘿,当我尝试以您的方式导入它时,我得到一个错误“src\app.ts(6,8):错误TS1192:模块“jquery”没有默认导出。因此,我需要从“jquery”中将其导入为$import*;有趣。您是否也尝试过在ViewModel的顶部使用
导入“jquery”
?我相信这应该是可行的,因为jQuery将从自身内部设置globals<代码>从“jquery”导入$;从“数据表”导入数据表