Dis*_*urb 3 html javascript webpack laravel-5 vuejs2
我正在学习 laravel 5.5 和 VueJs,我的问题是当我从 js 文件导出一些函数并从第二个 js 文件导入它时,它无法从 html 正文调用。例子:
A.js
function funA(){
}
export {funA};
Run Code Online (Sandbox Code Playgroud)
B.js
import {funA} from './A.js';
Run Code Online (Sandbox Code Playgroud)
此时,如果我funA在 B.js 中使用该函数,它会起作用,但是如果我在 html 页面上使用它,它会说 funA 未定义。例如:
<!DOCTYPE html>
<html lang="en">
<body>
<button onClick="funA()"></button>
<script src="{{asset('js/B.js')}}"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的 webpack 配置是这样的:
mix.scripts('resources/assets/js/libs/materialize.js', 'public/js/libs/materialize.js')
.js('resources/assets/js/A.js', 'public/js/js/A.js')
.js('resources/assets/js/B.js', 'public/js/B.js');
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。提前谢谢您。
我认为您的 HTML 期望funA位于全局window对象上。新的 JavaScript 模块系统不会向全局命名空间添加任何内容,以避免命名空间污染。
如果您只是想在按钮上使用 is,那么执行以下操作应该可以让您工作。
window.funA = funA
Run Code Online (Sandbox Code Playgroud)
您可以在您的B.js. 不过,我不会推荐这样做,因为我看到你似乎正在使用 Vue 并且有更好的方法来做到这一点。让我知道这是否有效,也请尝试分享您的 Vue 代码,以便有人可以帮助您以正确的方式做到这一点。
| 归档时间: |
|
| 查看次数: |
5339 次 |
| 最近记录: |