我目前正在尝试更深入地研究UI组件,但我有点卡在这里。
由于在这里发布所有代码会有点麻烦,因此我将发布一些相关的github链接。
有效的方法是上载图像并将文件名保存到数据库。
不起作用的是再次将文件加载到编辑表单页面上输入的文件中。
图像输入在此处定义:https : //github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83
该课程目前是空的,我今天尝试了很多事情,但是看起来似乎没有什么希望,我甚至不确定我是否需要它:https : //github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/表格/元素/TeaserItemImage.php
表单的数据源在这里:https : //github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php
(也尝试在此处加载image_url并将其用作字段索引)
对此也有一个文档,我可能对js太愚蠢,无法理解如何执行此操作:http : //devdocs.magento.com/guides/v2.0/ui-components/ui-form.html
有任何想法或已经做到这一点的人吗?
提前谢谢!
更新:
我在媒体组件(用于图像)中找到了这一点: vendor / magento / module-ui / view / base / web / js / form / element / media.js
return Abstract.extend({
defaults: {
links: {
value: ''
}
},
我是整个敲门js的新手,但是好像值绑定已删除。因此,必须有另一种设置值的方法吗?
我也尝试再次在配置中设置绑定,但没有成功。尝试过此操作(将image_path_abs添加到包含绝对文件路径的数据源中):
<field name="image_path" class="DavidVerholen\Teaser\Ui\Component\Form\Element\TeaserItemImage">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="links" xsi:type="array">
<item name="value" xsi:type="string">teaser_item_form.teaser_item_form_data_source.general.image_path_abs</item>
</item>
<item name="label" xsi:type="string">Image</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">image</item>
<item name="source" xsi:type="string">general</item>
</item>
</argument>
</field>