Magento 2-扩展onepage.phtml以添加自定义JS

时间:2019-05-29 12:08:58

标签: php magento e-commerce

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,或者我只是缺少某些东西?任何帮助将不胜感激!

0 个答案:

没有答案