markdown Magento 2 - 自定义UI组件模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Magento 2 - 自定义UI组件模板相关的知识,希望对你有一定的参考价值。

# Custom UI Component

## Create the [handle].xml layout configuration file

Example - layout/**default.xml**

```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>
        <referenceContainer name="content">
            <block class="Magento\Framework\View\Element\Template" name="test.ui.component" template="Module_Name::block.phtml">
                <arguments>
                    <argument name="jsLayout" xsi:type="array">
                        <item name="components" xsi:type="array">
                            <item name="test-ui-component" xsi:type="array">
                                <item name="component" xsi:type="string">Module_Name/js/view/component-name</item>
                                <item name="config" xsi:type="array">
                                    <item name="template" xsi:type="string">Module_Name/template-name</item>
                                </item>
                            </item>
                        </item>
                    </argument>
                </arguments>
            </block>
        </referenceContainer>
    </body>
</page>
```

## Create new [block-name].phtml template file

Example - templates/**block.phtml** :
```html
<div id="test-ui-component" data-bind="scope:'test-ui-component'">
    <!-- ko template: getTemplate() --><!-- /ko -->
</div>
<script type="text/x-magento-init">
    {
        "#test-ui-component": {
            "Magento_Ui/js/core/app": <?= /* @noEscape */ $block->getJsLayout();?>
        }
    }
</script>
```

## Create new [component-name].js JavaScript file

Example - web/js/view/**component-name.js** :
```js
define([
    'uiComponent'
], function (Component) {
    'use strict';

    return Component.extend({
        defaults: {
            content: 'Welcome',
            buttonText: 'Thanks!'
        },
        initialize: function () {
            this._super();
            // Custom code
        },
        isActive: function () {
            return true;
        },
        sayGoodbye: function () {
            alert('Goodbye!!!');
        }
    });
});
```

## Create new [template-name].html component template file

Example - web/template/**template-name.html** :
```html
 <!-- ko if: isActive() -->
    <span data-bind="html: content"></span>
    <!-- ko i18n: 'friend' --><!-- /ko -->
 
    <!-- ko foreach: getRegion('extra') -->
        <!-- ko template: getTemplate() --><!-- /ko -->
    <!--/ko-->
 
    <button type="button" data-bind="i18n: buttonText, attr: {title: buttonText}, click: sayGoodbye" class="button action primary"></button>
<!--/ko-->
```

以上是关于markdown Magento 2 - 自定义UI组件模板的主要内容,如果未能解决你的问题,请参考以下文章

markdown Magento 2 - 自定义UI组件模板

markdown Fishpig / Magento内的自定义字段

Magento 2:在 head 标签之后添加自定义脚本

Magento 2 如何根据语言环境自定义货币符号和格式

添加具有订单详细信息功能的自定义按钮 - Magento 2

Magento 2:自定义属性不起作用