【发布时间】:2022-01-23 04:57:30
【问题描述】:
我正在尝试从我的一个组件调用以下函数 LoadMultiSelect(),因为我使用的是非 Angular 库:
https://ibnujakaria.github.io/multiple-select-js/
这在控制台中完美运行:
new MultipleSelect('#select-multiple-language', {
placeholder: 'Select Language'
})
并加载JS组件。
后来,我尝试在 Angular 中添加它,但找不到方法。
我尝试通过两种方式导出 JS 函数:
export default function LoadMultiSelect() {
new MultipleSelect('#select-multiple-language', {
placeholder: 'Select Language'
});
}
像这样:
LoadMultiSelect() {
new MultipleSelect('#select-multiple-language', {
placeholder: 'Select Language'
});
}
var multiselect = new LoadMultiSelect();
export { multiselect };
我创建了一个文件来加载导出的函数:
assets/js/multiselect.js
后来,我在angular.json 的scripts 部分的build 中添加了它,如下所示:
"scripts": [
"./node_modules/multiple-select-js/dist/js/multiple-select.js",
"src/assets/js/multiselect.js"
]
然后我尝试像这样将它添加到我的组件中:
import LoadMultiSelect from '../../../../../assets/js/multiselect';
import LoadMultiSelect from 'src/assets/js/multiselect';
但没有任何效果,我收到此错误:
找不到模块的声明文件 '../../../../../assets/js/multiselect'。 '/Users/fanmixco/Documents/GitHub/holma-bootstrap/src/assets/js/multiselect.js' 隐式具有“任何”类型。
或者其他人,知道我做错了什么吗?
附:
-
另外,我尝试使用
require,但也失败了。 -
我已经用旧版本的 Angular 测试过以前的解决方案:
【问题讨论】:
-
如果您打算关闭它,请告诉我 Angular 6 或更早版本如何兼容。
-
“我将它添加到我的 angular.json 脚本部分的构建中,如下所示:“src/assets/js/multiselect.js”“ 为什么?去掉它。这没有道理。通过猜测进行编程是行不通的。第二个 sn-p 不是有效的 JavaScript/TypeScript。
-
整个方法看起来很奇怪。这种方法有原因吗?
MultipleSelect是什么?为什么使用扩展名*.js? -
嗨@jabaa,我有一个必须从我的组件调用的非Angular JS 库。这是主要挑战。
-
这个库是否已经存在?是否包含像第二个 sn-p 这样的无效代码?
标签: javascript angular angular13