Saya telah berhasil menambahkan tab khusus dengan kisi ke formulir Edit Pelanggan di admin Magento. Tab menggunakan <insertListing>
tag dalam tata letak XML untuk merender grid, yang berfungsi sebagaimana mestinya. Ketika saya mencoba untuk menyelamatkan pelanggan, validasi formulir membuat kesalahan. Saya telah men-debug ini dan tampaknya ketika validate()
metode tab_group.js
mencoba memanggil metode tab validate
itu kembali undefined
. Saya telah membandingkan ini dengan tab Kredit Toko, yang dibuat menggunakan blok Grid yang sudah usang, dan untuk elemen itu mengembalikan array kosong. Apakah ada sesuatu yang saya lewatkan pada konfigurasi saya?
Kesalahan:
tab_group.js:68 Uncaught TypeError: Cannot read property 'valid' of undefined
at tab_group.js:68
at Function.findIndex (underscore.js:644)
at Function._.find._.detect (underscore.js:206)
at UiClass.validate (tab_group.js:67)
at Array.some (<anonymous>)
at UiClass.onValidate (tab_group.js:86)
at setNested (objects.js:43)
at Object.nested (objects.js:117)
at UiClass.set (element.js:305)
at updateValue (links.js:80)
(anonymous) @ tab_group.js:68
(anonymous) @ underscore.js:644
_.find._.detect @ underscore.js:206
validate @ tab_group.js:67
onValidate @ tab_group.js:86
setNested @ objects.js:43
nested @ objects.js:117
set @ element.js:305
updateValue @ links.js:80
(anonymous) @ events.js:87
trigger @ events.js:84
trigger @ events.js:162
validate @ form.js:333
save @ form.js:261
dispatch @ jquery.js:5226
elemData.handle @ jquery.js:4878
XML Layout Tab ( view/base/ui_component/customer_form.xml
):
<?xml version="1.0"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="downloaded_blueprints" sortOrder="1000">
<settings>
<label translate="true">Downloaded Blueprints</label>
</settings>
<insertListing name="downloaded_blueprints_listing">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">blueprint_download</item>
</item>
</argument>
<settings>
<externalProvider>${ $.ns }.downloaded_blueprints_listing_data_source</externalProvider>
<autoRender>true</autoRender>
<dataScope>downloaded_blueprints_listing</dataScope>
<ns>downloaded_blueprints_listing</ns>
<exports>
<link name="customerId">${ $.externalProvider }:params.customer_id</link>
</exports>
<imports>
<link name="customerId">${ $.provider }:data.customer.entity_id</link>
</imports>
</settings>
</insertListing>
</fieldset>
</form>