【发布时间】:2023-03-08 04:27:01
【问题描述】:
我试图让一个简单的日期选择器在 aurelia 中工作,但我想我在这里错过了一些非常基本的东西。
我在这里使用带有 webpack 的 aurelia 骨架
https://github.com/aurelia/skeleton-navigation/tree/master/skeleton-typescript-webpack
在此之后,我假设它接下来安装 Jquery-ui。
http://ilikekillnerds.com/2016/02/using-jquery-ui-widgets-in-aurelia/
看这里,一切似乎都很简单。但无论我做什么,我都会得到 “[ts] 在这一行找不到模块 'jquery-ui'”
import { datepicker } from "jquery-ui";
我不知道如何让模块正常工作。
npm install jquery
npm install jquery-ui
tsd install jquery
tsd install jqueryui
这里还有什么遗漏吗?
因为我使用 webpack 我不需要任何 jspm 魔法?或者我是这么认为的?
编辑: Adding a module dependency in Aurelia with Webpack
这里看起来像
npm install jquery-ui --save
是我所需要的。还是一样的问题
编辑:完成 datepicker.ts 代码
import { customElement, bindable, inject } from "aurelia-framework";
import "jquery";
import { datepicker } from "jquery-ui";
@customElement('jquery-ui-datepicker')
@inject(Element)
export class JqueryUiDatepicker {
@bindable id = '';
@bindable name = '';
@bindable options = {};
constructor(Element) {
this.element = Element;
if (!this.id && this.name) {
this.id = this.name;
}
if (!this.name && this.id) {
this.name = this.id;
}
}
attached() {
$(`#${this.id}`).datepicker(this.options)
.on('change', e => {
let changeEvent = new CustomEvent('input', {
detail: {
value: e.val
},
bubbles: true
});
this.element.dispatchEvent(changeEvent);
});
}
detached() {
$(`#${this.id}`).datepicker('destroy').off('change');
}
}
【问题讨论】:
-
我不知道问题出在哪里,但可能值得切换到类型,因为 tsd 已被贬低github.com/DefinitelyTyped/tsd/issues/269
-
看起来我应该只在 npm install jquery-ui 之后运行“typings install”。但仍然是相同的结果:/ 但我有打字和 tsd .. 将删除 tsd 看看这是否有任何帮助。
-
试试这个
import from "jquery-ui/datepicker" -
还是一样。更烦人的是,我可以清楚地看到 jquery-ui 安装在我的 node_modules 文件夹中。
-
import 语句的
{ datepicker }部分并不是真正必要的,因为据我所知,jquery-ui 不会导出任何内容。你试过删除它吗?
标签: jquery-ui typescript webpack aurelia