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