如何在 Ionic 3 中导入外部 JS 文件

Posted

技术标签:

【中文标题】如何在 Ionic 3 中导入外部 JS 文件【英文标题】:How can I importing external JS file in Ionic 3 【发布时间】:2018-04-06 02:47:52 【问题描述】:

我在将外部 js 文件添加到 Ionic 3 时发现问题。这就是我所做的,我在 src/js/hamburg.js 中创建了一个 hamburg.js 文件,并在 index.html 中的 app/index.html 中调用了脚本文件。我在testpage.hmtl 中添加了html 代码,在testpage.scss 中添加了css。也在app.component.ts 中声明。这是我的代码

app.component.ts 声明 var wrapperMenu;

汉堡.js

var wrapperMenu = document.querySelector('.wrapper-menu');

wrapperMenu.addEventListener('click', function()


wrapperMenu.classList.toggle('open');
)

index.html

<script src="assets/js/hamburg.js"></script>

testpage.html

<div class="wrapper-menu">
<div class="line-menu half start"></div>
<div class="line-menu"></div>
<div class="line-menu half end"></div>

有人可以指导我吗?

【问题讨论】:

可以分享一下你的JS库的网址吗? 嗨 Sampath,这是链接,我想将其集成到 Ionic 3 codepen.io/JoseRosario/pen/BWqMwK 【参考方案1】:

不需要外部js文件,这个插件主要是用CSS玩的。

这个sn-p

var wrapperMenu = document.querySelector('.wrapper-menu');
 wrapperMenu.addEventListener('click', function()
 wrapperMenu.classList.toggle('open');  
)

可以放在 app.component.ts 文件中。或者,如果您有单独的标头组件,最好将代码放在其 ts 文件中,专门放在 ngOnInit() 钩子上。

编辑组件life-cycle最好的钩子是把这段代码放到ngAfterViewInit()钩子里。

编辑 2: 另一个好的做法是使用在打开菜单时自动添加的预定义类 menu-content-open,您可以将 CSS 代码中的选择器从 .open 更改为 @ 987654328@

从你原来的here查看我的分叉示例。 请注意,当您将代码添加到 ionic 应用程序时,代码将完美运行。

【讨论】:

嗨彼得,当我在 app.module.ts 中添加相同的内容时,它引发了类似这样的错误 TypeError: Cannot read property 'addEventListener' of null  /build/main.js:1505: 13 Object.243()  /build/vendor.js:55:30 __webpack_require__()  /build/main.js:1309:70 Object.224()  /build/vendor.js:55:30 __webpack_require__()  /build/vendor.js:26:23 webpackJsonpCallback()  /build/main.js:1:1 很抱歉我的意思是 app.component.ts,我编辑了我的答案,在这里你可以找到一个名为 ngOnInit 的钩子来将你的代码放入其中 您能否提供来自您的 ionic 应用程序本身的代码的 sn-ps。

以上是关于如何在 Ionic 3 中导入外部 JS 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在下一个 js 中从节点模块外部的文件夹中导入模块

如何在 Ionic 3 的页面中导入页面

如何在 Vue 组件中导入外部函数?

如何在Ionic 3中使用外部Javascript文件

如何在ionic 4项目中导入和使用自定义cordova插件

如何使用 Ionic 设置 Svelte.js?