【发布时间】:2018-03-17 20:58:18
【问题描述】:
我创建了一个 app.js(和 app.scss)用于 Symfony Encore。
└───assets
├───css
│ └───app.scss
└───js
└───app.js
app.js:
/**
* Name: app.js
* Desc: Main application javascript
*/
var $ = require('jquery');
require('bootstrap-sass');
require('../css/app.scss');
// Initialize tooltips
$(function () {
$('[data-toggle="tooltip"]').tooltip()
});
var openLoginModal = function(element){
$('#login-modal').modal('show');
}
在我的一个模板中,我希望能够设置“onclick”事件来调用 app.js 中定义的“openLoginModal”函数
<a class="btn btn-info navbar-btn navbar-right" data-toggle="login-modal" onclick="openLoginModal(this)">Login</a>
单击锚元素时,控制台中会显示以下错误:
Uncaught ReferenceError: openLoginModal is not defined
at HTMLAnchorElement.onclick ((index):29)
我假设由于某种原因我无法访问 app.js 中的函数,但我对 webpack 的了解还不够,无法理解为什么会这样
【问题讨论】:
-
尝试将
var openLoginModal更改为Window.prototype.openLoginModal。我相信您正在尝试访问全局函数,但您的脚本位于 webpack 模块中。 -
我刚刚在这里回答了这个问题stackoverflow.com/a/49316775/9083959
标签: symfony webpack symfony4 webpack-encore