如何以angular导入https://anseki.github.io/plain-draggable/ ? 我已经将npm i plain-draggable拖入npm i plain-draggable然后将angular.json导入.min.js 在html中 在组件中: decl ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我看过很多关于它的帖子,我尝试了几种解决方案都无济于事。 我真的把我的头发拉到这个上面。
快速介绍:在我正在开发的应用程序中,用户可以在处理多件事情时选择一个日期。 应用程序需要能够检查该日期并确保该日期不属于周末或节假日。 这发生在几个屏幕上。 因此,为了成为一名优秀的小程序员,我不想在我需要的每个 javascript 文件中编写 check_holiday_or_weekend function 代码。 我希望能够在某处的 js 文件中对此进行一次编码,并能够在需要时在其他几个 js 文件中引用它。
在 Rails 4 中,function 位于 application.js 的末尾,随处可用。
但是,对于 Rails 6.1 和 Webpack,我无法使用 function。
这是我到目前为止所尝试的。
在 application.js 的末尾添加 function 就像我在 Rails 4 中所做的那样。当我这样做时,我收到一个 ReferenceError ,表明 function 不存在或尚未声明。
在阅读完该主题后,我发现 Webpack 对范围非常严格,您必须将函数写入单独的 js 文件,然后导入该 js 文件,甚至使用视图中的 <%=javascript_pack_tag %> 导入该文件仅在该视图上。 我也尝试过,但无济于事。
最后,我看到一些解决方案实现了一些看起来更像 ES6 的 realm 和 React 的解决方案,建议将 function 写入 js 文件并导出 ZC1C425268E683854F1AB5074C17A。 然后,在需要使用的js文件中导入那个function。 所以这就是我所在的地方,它仍然无法正常工作。
所以现在,我的 application.js 保持不变我已经创建了 globals.js 文件,文件如下 function (这只是一个快速测试 function 看看它是否工作)
globals.js
export const potato = () => {
alert("Potato!!);
}
然后在特定屏幕 screen_specific.js 上使用的 js 文件中
import { potato } from 'globals';
$(document).on("screen_specific#new:loaded screen_specific#create:loaded", function() {
potato();
}
当特定屏幕打开时,什么都没有发生,在控制台中我得到
Uncaught TypeError: Object(...) is not a function
我还尝试将命名导出更改为默认导出,但我收到相同的错误,尽管消息不同
具有默认导出的 globals.js
const potato = () => {
alert("Potato!!);
};
export default potato;
具有默认导入的 screen_specific.js
import potato from 'globals';
$(document).on("screen_specific#new:loaded screen_specific#create:loaded", function() {
potato();
}
Uncaught TypeError: globals__WEBPACK_IMPORTED_MODULE_0___default() is not a function
所以从这里开始,我完全不知道 go 的方向,除了在我需要的每个 js 文件中编码 function 之外。 这真的是非常糟糕的编码。
注意:我也尝试过以不同的方式编写函数,例如
const potato = function(){
...};
or
var potato = function() {
...
};
任何见解或建议将不胜感激。
我只是为自己“解决”了这个问题。 请注意,这是一个非最佳解决方案:它基本上将您的代码植根于过去并增加了技术债务。 但是,这就是我学到的。
对于 webpacker,范式是 JavaScript 不是“松散的”。 它依附于元素,很少或根本没有全局 function 的概念。
但是,在 Rails 6.1 中,您仍然可以使用旧的资产管道进行 JavaScript 洒水:在多个地方需要但又想保持 DRY 的那些小东西。
因此,将javascript
目录添加到app/assets
。 然后打开app/assets/manifest.js
和 append //= link_directory../javascript.js
。
然后,在您的布局中,您可以为相应的 js 文件添加javascript_include_tag
。 它将以老式方式加载它,并且这些功能应该在该页面中可用。
显然,旧的资产管道是你(和我)应该远离的东西。 但这可能会给你一些喘息的空间,直到你这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.