Questions tagged «uicomponent»

表示有关Magento Ui组件的问题

1
什么是UI组件中的reverseMetadataMerge?
在查看UI组件的文档时,我注意到以下几点: <item name="reverseMetadataMerge" xsi:type="boolean">true</item> 现在,大多数论据在做什么方面都非常不解自明,或者我已经知道了,但是做reverseMetadataMerge什么呢?

1
组件与小部件
在Magento 2中,组件和小部件之间有什么区别?例如,有一个模态组件和一个模态小部件,它们看起来都在做相同的事情。 零件 所述模态UI组件实现了在主窗口的顶部打开一个辅助窗口。它使用模式小部件。 小部件 所述的Magento模态小部件实现了在主窗口的顶部打开一个辅助窗口。 可以使用几行JS来初始化该小部件,其中,由于该组件需要许多行XML,并且仍然使用该小部件。那么,为什么有人会使用XML方法呢?

1
在ui组件表单字段上设置默认配置值
表单和网格的ui组件格式在2.2版(dev)中正在更改。(也许已经做到了)。如何为字段设置默认值。 在2.2-dev之前,您可以在表单中添加类似这样的字段。 <field name="title"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="default" xsi:type="string">Some default value.</item> <item name="label" xsi:type="string" translate="true">Page Title</item> <item name="formElement" xsi:type="string">input</item> <item name="source" xsi:type="string">source_here</item> <item name="sortOrder" xsi:type="number">20</item> <item name="dataScope" xsi:type="string">title</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> </item> </argument> </field> 在2.2-dev中,该列如下所示: <field name="title" sortOrder="20" formElement="input"> …

2
Magento 2:如何检测结帐步骤更改
我正在尝试找出检测Magento 2结帐中步骤变化的最佳方法。例如,从发货详细信息到付款,反之亦然。 我已经做了一些挖掘工作,并且vendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.js可以使用next()哪种在继续按钮navigateTo()上触发,以及在用户直接单击checkoutstep时哪种触发-但是两种方法似乎都比较笨拙,无论如何如何,都必须有一种更干净的方法来检测步骤更改以及哪一步。 我希望stepChange()每当结帐步骤发生更改时就会触发的功能或类似功能。 我的问题: 发生结帐步骤更改时,触发我的自定义JS的最佳方法是什么?

2
如何在Magento 2的管理表单中添加自定义字段?
我已经使用UI组件在管理员中创建了一个表单,因此view/adminhtml/ui_component/[module]_[entity]_form.xml我拥有以下内容: <field name="configuration"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Configuration</item> <item name="formElement" xsi:type="string">textarea</item> <item name="source" xsi:type="string">form</item> <item name="sortOrder" xsi:type="number">30</item> <item name="dataScope" xsi:type="string">configuration</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> </item> </argument> </field> 现在,我不想将此值设为textarea,但是我想在后端为此值创建自己的HTML魔术。这个“ HTML Magic”最终将是很多JS / KnockOut,在发布表单时,水下仍会发送一些隐藏数据,因此它必须是表单的一部分。我尝试通过添加添加渲染: <item name="renderer" xsi:type="object">Vendor\Module\Block\Adminhtml\Renderer\Configurator</item> 但这仍会呈现文本区域。然后,我尝试用formElement自定义类替换,如下所示: <item name="formElement" xsi:type="object">Vendor\Module\Component\Form\Element\Configurator</item> …

1
通过ui_component XML添加列时更新ui_bookmark表
在Magento 2中,ui_component基于网格的网格允许您对列进行重新排序,Magento下次登录时将记住您的设置。这是通过Magento ui_bookmark(通过Magento\Ui\Model\Bookmark模型对象)将数据保存在表中来完成的。 尽管此功能很简洁,但是当扩展开发人员或系统集成商使用Magento ui_componentXML向表中添加列时,它可能会带来问题。如果有自定义数据,ui_bookmark则Magento将(似乎)忽略新列的排序顺序,并且可能会发生奇怪/意外的事情。 对于想要将列添加到UI网格(Magento或自己的列)并确保列与其他列相关的扩展开发人员,是否有最佳实践和/或系统?即-“此第二个操作按钮应始终显示在最后,或始终显示倒数第二个”,或“名称字段应始终在ID之后。 扩展开发人员是否需要通过app/code/Package/Module/Setup/...类到达ui_bookmark表并自己更新这些条目?还是有更好的方法来做到这一点?还是当用户已经有一个条目时,扩展开发人员是否只需要将一列添加到意外的地方ui_bookmark?

2
UI组件-以“ Ymd H:i:s”格式(ISO时间格式)显示时间
我通过UI组件创建了一些管理列表页面,其时间列中的默认时间格式如下所示 UI组件代码如下 <column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Created At</item> </item> </argument> </column> 数据库中的时间格式正确(ISO时间格式),这就是我要显示的格式。 那么,如何在UI组件中以“ Ymd H:i:s ”格式(ISO时间格式)显示时间?感谢您的任何建议:)

2
如何将数据传递到另一个ui组件DataProvider
我有一个网格UI组件,它位于某些已编辑表单的字段集中。我需要将一个entity_id从编辑表单传递到网格,在网格中我可以按某个值过滤某些项的集合,并且网格将显示适当的结果。我使用insertListing组件创建了网格组件。 <insertListing name="slide_grid"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="autoRender" xsi:type="boolean">true</item> <item name="source" xsi:type="string">slide</item> <item name="loading" xsi:type="boolean">true</item> <item name="dataScope" xsi:type="string">some_slider_slide_listing</item> <item name="externalProvider" xsi:type="string">${ $.ns }.some_slider_slide_listing_data_source</item> <item name="ns" xsi:type="string">some_slider_slide_listing</item> <item name="externalData" xsi:type="string">id</item> <item name="imports" xsi:type="array"> <item name="slider_id" xsi:type="string">${ $.provider }:data.entity_id</item> </item> <item name="exports" xsi:type="array"> <item name="slider_id" xsi:type="string">${ $.externalProvider }:params.slider_id</item> </item> …

3
Magento 2产品编辑/添加管理表单自定义部分
我正在学习UI组件。 我想在产品编辑/添加后端表单中添加自定义部分,因此 我创建了以下文件。 供应商/模块/视图/adminhtml/ui_component/product_form.xml <?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <fieldset name="mobile"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="label" xsi:type="string" translate="true">Time</item> <item name="provider" xsi:type="string">product</item> <item name="dataScope" xsi:type="string">data.product</item> <item name="sortOrder" xsi:type="number">2</item> <item name="collapsible" xsi:type="boolean">true</item> <item name="opened" xsi:type="boolean">false</item> <item name="ns" xsi:type="string">product_form</item> </item> </argument> <container name="monday_time_group"> <argument name="data" xsi:type="array"> <item name="type" xsi:type="string">group</item> …


2
Magento 2-自定义管理网格字段-排序或过滤时出错
我将自定义列添加到管理网格,像这样 <column name="customer_name" class="Vendor\Module\Ui\Component\Listing\Columns\CustomerName"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="sortable" xsi:type="string">true</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> </argument> </column> 在我的CustomerName类中,我为此列创建值: public function prepareDataSource(array $dataSource) { $fieldName = $this->getData('name'); foreach ($dataSource['data']['items'] as & $item) { $customer = $this->customerRepository->getById($item['customer_id']); $name = …

1
控制器操作中的保留关键字-Magento 2
我正在研究管理网格的概念。我找到了一个github源代码并对其进行了分析。 虽然我发现URL与UI组件布局中的声明不同。 <item name="url" xsi:type="string">*/*/new</item> */*是当前当前的名字和动作路径,但是我New.php在控制器路径中找不到,但是NewAction.php存在文件。 所以我很困惑。如何NewAction.php在Model中自动映射到类似工厂方法? 谁能解释一下?

1
Magento 2:在UI组件中填充“元素”的内容
列出UI组件的顶级KnockoutJS模板如下所示 <!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html --> <each args="data: elems, as: 'element'"> <render if="hasTemplate()"/> </each> Magento将其翻译为以下原始KnockoutJS代码。 <!-- ko foreach: {data: elems, as: 'element'} --> <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko --> <!-- /ko --> 无论哪种情况,此模板都将foreach覆盖视图模型的elems属性。 如果我查看RequireJS模块(我认为>),它返回视图模型的构造函数类 vendor/magento/module-ui/view/base/web/js/lib/core/collection.js 我看到该insertChild方法似乎添加到elems属性。 我不太清楚的是:Magento实际在何处调用insertChild以填充elems和/或如何elems填充构成UI组件集合的视图模型?


2
Magento2发送ID insertListing到网格
如何将ID从表单发送到插入列表网格? 我想做的是,在我的表单中,我用插入清单加载了一个网格。 在此网格中,我希望所有结果都具有表单ID。 <insertListing name="insertlisting_colors_one"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="autoRender" xsi:type="boolean">true</item> <item name="imports" xsi:type="array"> <item name="spd_id" xsi:type="string">${ $.provider }:data.spd_id</item> </item> <item name="ns" xsi:type="string">colors_one_grid</item> </item> </argument> </insertListing> 下面是网格中的代码 <item name="filter_url_params" xsi:type="array"> <item name="color_amount" xsi:type="string">1</item> <item name="spd_id" xsi:type="string">${ $.parentName }.spd_id</item> </item>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.