我试图在aurelia中使用RobinHerbots' Inputmask,但似乎无法正确导入它。
我遇到过一些人在讨论如何在aurelia中使用这个插件,但是我找不到关于如何使用这个插件的具体文档。
在npm i inputmask --save
之后,这就是我的aurelia.json
中的内容:
{
"name": "inputmask",
"path": "../node_modules/inputmask/dist",
"main": "jquery.inputmask.bundle",
"deps": [
"jquery"
]
}
在我的
package.json
中,我声明了inputmask
。"dependencies": {
//...
"inputmask": "^3.3.11",
//...
}
我在运行
au build
时没有看到错误。但是,当我使用es6导入时,我不能使用它的任何属性。import Inputmask from "inputmask";
attached() {
let im = new Inputmask('999-99-9999');
let select = document.getElementById('social-security-number-field');
im.mask(select);
}
产生
Unhandled promise rejection TypeError: inputmask_1.default is not a constructor
和Uncaught TypeError: Cannot read property 'value' of undefined
Inputmask error in the console
当我尝试使用
data-inputmask
属性时,它也不起作用。<input type="text" class="form-control" id="social-security-number-field" value.bind="ssn" data-inputmask="'mask': '999-99-9999'">
Input is not successfully masked using data-inputmask
我遗漏了什么吗?我只在导入专门针对aurelia或state的插件时有经验,它们可以与aurelia一起使用,所以我可能确实遗漏了一些重要的东西。
最佳答案
这个包不太兼容。他们把它和网页包捆绑在一起。它没有任何默认导出,可能只适用于webpack。
尝试导入常规生成输出:
{
"name": "inputmask",
"path": "../node_modules/inputmask/dist/inputmask",
"main": "inputmask",
"deps": ["jquery"]
}
这将需要你在你的
jquery.inputmask.bundle.js
中还包括的其他依赖项,但是如果是这样的话,你会得到一个适当的警告。编辑:
您还应该将导入语句更改为:
aurelia.json
;致:
import inputmask from "inputmask"
;输入掩码没有默认导出,这就是为什么导入语句无法工作的原因。