Magento 2 - Расширение onepage.phtml для добавления пользовательских JS - PullRequest
0 голосов
/ 29 мая 2019

Magento 2

Я создал модуль пользовательского метода доставки, и мне нужно добавить пользовательский JS на страницу оформления заказа, где указан адрес и метод доставки. Но это не работает для меня.

Я добавил свой onepage.phtml в следующем месте:

My_Module\view\frontend\templates\onepage.phtml

Я также создал файл checkout_index_index.xml в следующем месте:

My_Module\view\frontend\layout\checkout_index_index.xml

Местоположение моего JS:

My_Module\view\frontend\web\js\custom.js

Содержимое моего onepage.phtml файла:

<script type="text/javascript">
        require(['jquery', 'custom-js'], function($) {
            alert('JS loaded');
        });
</script>

Содержимое моего checkout_index_index.xml файла:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="checkout.onepage">
            <action method="setTemplate">
                <argument name="template" xsi:type="string">My_Module::onepage.phtml</argument>
            </action>
        </referenceBlock>
    </body>
</page>

Содержимое моего requirejs-config.js файла:

var config = {
    map: {
        '*': {
            custom-js: 'My_Module/js/custom-js'
        }
    }
};

Содержимое моего module.xml файла:

<?xml version="1.0"?>
  <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="My_Module" setup_version="1.0.1">
        <sequence>
            <module name="Magento_Checkout"/>
        </sequence>
    </module>
  </config>

Когда я добавляю содержимое моего onepage.phtml файла в основной файл onepage.phtml, JS загружается правильно.

Кроме того, когда я изменяю referenceBlock name на checkout.root в файле checkout_index_index.xml, мои JS-файлы загружаются, но кажется, что только файл onepage.phtml отображается и ничего больше ... Я использую неправильное name значение?

Есть ли лучший способ включить JS или я просто что-то упустил? Любая помощь будет оценена!

...