Magento 2 不显示文本样本值
Magento 2 not showing text swatches values
我正在尝试将我的商店从 V2.3 升级到 V2.3.1。我正在开发我的本地开发版本,几乎一切正常。我使用的文本样本在 V2.3 中运行良好,但在 V2.3.1 中,我在样本中看到的只是 "null"。当我将鼠标悬停在样本上时,我知道正确的文本被发送到页面(见下图,您可以看到第二个颜色样本的值为灰色)。我怀疑 javascript 有什么问题,但我不知道从哪里开始寻找。顺便说一句,控制台日志中没有错误。
谁能指出问题出在哪里?
我已经将问题追溯到 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() 查看此语句的每个变体前后的值内容及其类型。在未定义之前,在两个变体都为 null 之后,将其更改回旧版本可以解决问题!这可能是因为之前在 V2.3 中它是对象类型,而在 V2.3.1 中它是字符串类型(并且可能具有值 "null"!)。
老实说,我对 javascript 的了解相当有限。这看起来像是一个错误吗?如果是这样,修复它的最佳方法是什么(我假设测试刺痛 "null")?
- 商店 > 属性 > 产品 > 编辑并保存文本样本值
- php bin/magento indexer:reindex
请从后端更新产品属性“管理员”列。然后执行重建索引。
我正在尝试将我的商店从 V2.3 升级到 V2.3.1。我正在开发我的本地开发版本,几乎一切正常。我使用的文本样本在 V2.3 中运行良好,但在 V2.3.1 中,我在样本中看到的只是 "null"。当我将鼠标悬停在样本上时,我知道正确的文本被发送到页面(见下图,您可以看到第二个颜色样本的值为灰色)。我怀疑 javascript 有什么问题,但我不知道从哪里开始寻找。顺便说一句,控制台日志中没有错误。
谁能指出问题出在哪里?
我已经将问题追溯到 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() 查看此语句的每个变体前后的值内容及其类型。在未定义之前,在两个变体都为 null 之后,将其更改回旧版本可以解决问题!这可能是因为之前在 V2.3 中它是对象类型,而在 V2.3.1 中它是字符串类型(并且可能具有值 "null"!)。
老实说,我对 javascript 的了解相当有限。这看起来像是一个错误吗?如果是这样,修复它的最佳方法是什么(我假设测试刺痛 "null")?
- 商店 > 属性 > 产品 > 编辑并保存文本样本值
- php bin/magento indexer:reindex
请从后端更新产品属性“管理员”列。然后执行重建索引。