Magento 2不显示文本色板值

时间:2019-05-27 09:14:29

标签: magento magento2

我正在尝试将商店从V2.3升级到V2.3.1。我正在开发本地开发版本,并且几乎所有功能都可以正常工作。我使用在V2.3中可以正常工作的文本色板,但在V2.3.1中,我在色板中看到的只是“空”。当我将鼠标悬停在色板上时,我知道正确的文本将被发送到该页面(请参见下图,您可以看到第二个色板的值为Grey)。我怀疑javascript无法正常运行,但是我不知道从哪里开始寻找。控制台日志中没有错误。

任何人都可以提出问题可能在哪里? enter image description here

2 个答案:

答案 0 :(得分:1)

请从后端更新产品属性“管理员”列。然后执行重新索引。

Product Attribute - Edit

答案 1 :(得分:0)

我已经在swatch-renderer.js中找到了问题所在。 V2.3版本在517处包含以下行:

value = optionConfig[id].hasOwnProperty('value') ? optionConfig[id].value : '';

版本V2.3.1已将其更改为以下版本:

value = optionConfig[id].hasOwnProperty('value') ? $('<i></i>').text(optionConfig[id].value).html() : '';

,然后在下面的语句中使用该值将文本放入html中:

html += '<div class="' + optionClass + ' text" ' + attr + '>' + (value ? value : label) + '</div>';

我使用alert()来查看此语句的每个变体之前和之后的值内容及其类型。在未定义之前,两个变体都为空之后,将其更改回旧版本即可解决问题!这可能是因为以前在V2.3中,它是对象类型,而在V2.3.1中,它是字符串类型(并且假定值为“ null”!)。

老实说,我对javascript的了解非常有限。这看起来像错误吗?如果是这样,修复它的最佳方法是什么(我假设测试字符串“ null”)?