Функция Symfony 4 Javascript не определена

Я создал app.js (и app.scss) для использования с Symfony Encore.

└───assets
    ├───css
    │   └───app.scss
    └───js
        └───app.js

приложение.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 для вызова функции openLoginModal, определенной в app.js.

<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, но я недостаточно знаю о веб-пакете, чтобы понять, почему это так.


person Adam    schedule 17.03.2018    source источник
comment
Попробуйте изменить var openLoginModal на Window.prototype.openLoginModal. Я полагаю, вы пытаетесь получить доступ к глобальной функции, но ваш скрипт находится внутри модуля веб-пакета.   -  person Iwan Wijaya    schedule 18.03.2018
comment
Я только что ответил на это здесь stackoverflow.com/a/49316775/9083959   -  person lukas-reineke    schedule 18.03.2018


Ответы (1)


попробуй это

(function ($, window)
{
   window.openLoginModal = function(element){
       $('#login-modal').modal('show');
   }
}(jQuery, window);
person Mesut    schedule 09.08.2018