我有(社区)扩展名,当您更改可配置产品的选项时,可以切换产品图像。这很棒。
我还开发了一些改变的扩展 select 图像和标签的可配置选项的元素。同样,这是按预期工作的。
现在问题. 。他们俩都需要从 head 阻止 varien/configurable.js 处理可配置产品并添加自己的文件的JavaScript文件。因此,基本上他们两个都覆盖了JS课程 Product.Config. 。他们俩都需要覆盖 initialize 班上的功能,所以我无法添加我的扩展名 Product.Config.prototype.initialize = function(){...}. 我可以吗?
可以想象,他们不会一起工作。
是否有任何方法可以解决此类冲突,而无需将社区扩展带入我的JS文件并在此基础上进行的更改?

有帮助吗?

解决方案

如上面的评论所述,根据所涉及的代码,您可以将原型product.config和从中继承。因此,例如这样:

var MyProduct.Config = Class.create(Product.Config, {
    initialize: function($super, config){
        $super(config); //this calls the parent initialize
        //do your custom stuff here        
    }
});

有关原型继承的更多信息是 这里.

正如您之后猜到的那样,您将使用

spConfig = MyProduct.Config(...)

代替

spConfig = Product.Config(...)
许可以下: CC-BY-SA归因
scroll top