微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以确定在属性后端中哪个色板选项设置为默认值?

如何解决是否可以确定在属性后端中哪个色板选项设置为默认值?

因此,我有一个可配置产品,其属性名为Size,带有文本色板选项S / M和L。在此属性上,我选择了大小M作为认值。现在,当我进入可配置产品页面时,我想在前端预先选择此选项。

当前,我在我覆盖swatch-renderer.js文件的位置进行了混合,目前的临时解决方案是选择第二个div.swatch-option并触发点击,以便在每次加载页面时都对其进行预先选择。

define([
    'jquery','underscore','mage/translate','jquery-ui-modules/widget'
],function ($,_) {
    'use strict';
    return function (widget) {
        $.widget('mage.SwatchRenderer',widget,{
            _init: function () {
                if ($(this.element).attr('data-rendered')) {
                    return;
                }
                $(this.element).attr('data-rendered',true);
                if (_.isEmpty(this.options.jsonConfig.images)) {
                    this.options.useAjax            = true;
                    this._debouncedLoadProductMedia = _.debounce(this._LoadProductMedia.bind(this),500);
                }
                if (this.options.jsonConfig !== '' && this.options.jsonSwatchConfig !== '') {
                    this.options.jsonConfig.mappedAttributes = _.clone(this.options.jsonConfig.attributes);
                    this._sortAttributes();
                    this._RenderControls();

                    if (this.options.jsonConfig.attributes.length > 0) {
                        var selectswatch = this.element.find('.' + this.options.classes.attributeClass + ' .' + this.options.classes.attributeOptionsWrapper);
                        $.each(selectswatch,function (index,item) {
                            console.log(index);
                            let swatchOption;
                            if ($(item).find('div.swatch-option').attr("aria-label") === 'S') {
                                swatchOption = $(item).find('div.swatch-option').eq(1);
                            } else {
                                swatchOption = $(item).find('div.swatch-option').first();
                            }
                            if (swatchOption.length && !$(item).find('div.swatch-option').hasClass('selected')) {
                                swatchOption.trigger('click');
                            }
                        });
                    }
                    this._setPreSelectedgallery();
                    $(this.element).trigger('swatch.initialized');
                } else {
                    console.log('SwatchRenderer: No input data received');
                }
                this.options.tierPriceTemplate = $(this.options.tierPriceTemplateSelector).html();
            }
        });
        return $.mage.SwatchRenderer;
    };
});

因为我不想对此进行硬编码,所以我正在寻找有关如何检入mixin的示例选项设置为认值的解决方案。

我应该以哪种方式看待任何建议或提示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。