Bootstrap 4 JavaScript не работает Symfony4 - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь использовать Bootstrap 4 в Symfony 4, используя менеджер пакетов yarn, но почему-то JavaScript не работает. У меня нет ошибок в консоли, но когда я пытаюсь вызвать кнопку свертывания панели навигации, я не открою панель навигации.

Это мой код:

app.js

var $ = require('jquery');

require("bootstrap/js/dist/");

base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}Welcome!{% endblock %}</title>
        <link rel="stylesheet" href="{{ asset('build/css/app.css') }}">
    </head>
    <body>
        <nav class="navbar navbar-expand-lg navbar-light bg-light">
            <a class="navbar-brand" href="#">CRM Fabriek</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item active">
                        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Link</a>
                    </li>


                </ul>
                <form class="form-inline my-2 my-lg-0">
                    <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
                    <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
                </form>
            </div>
        </nav>
        {% block body %}{% endblock %}
        <script src="{{ asset('build/js/app.js') }}"></script>
    </body>
</html>

Я скомпилировал js в файл build / js / app.js, используя yarn run encore dev

1 Ответ

0 голосов
/ 27 апреля 2018

Импортируйте JavaScript Bootstrap, добавив эту строку в точку входа вашего приложения (обычно index.js или app.js):

import 'bootstrap';

или укажите путь полностью

import 'bootstrap/dist/js/bootstrap';

или, если вы предпочитаете, требуют ()

require('bootstrap/dist/js/bootstrap');

В качестве альтернативы, вы можете импортировать плагины по мере необходимости:

import 'bootstrap/js/dist/util';
import 'bootstrap/js/dist/dropdown';
...

https://getbootstrap.com/docs/4.1/getting-started/webpack/#importing-javascript

В документации webpack-encore говорится, что вы должны в свой файл webpack.config.js добавить вызов .autoProvidejQuery (), поскольку Bootstrap ожидает, что jQuery будет доступен как глобальная переменная.

// webpack.config.js
Encore
// ...
.autoProvidejQuery();

http://symfony.com/doc/current/frontend/encore/bootstrap.html#importing-bootstrap-javascript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...