在Node Js
模型中,我具有以下内容。该文件存在于另一个项目中,该项目无法更改,但其他项目在本地可用。
module.exports = {
base: require('*/cartridge/models/product/decorators/base'),
availability: require('*/cartridge/models/product/decorators/availability')
};
此处的所有方法的作用类似于constructors
中的class Product
。现在,我想添加另一个属性,当我尝试访问Product.badge
时该属性应该可用。为此,我尝试通过以下方式扩展上述模型:
var indexBase = require('*/cartridge/models/product/decorators/index');
indexBase.badge = require('*/cartridge/models/product/decorators/badge');
module.exports = indexBase;
但是似乎抛出一个错误,我尝试登录Badge Type
,但是我仍然无法在此处访问徽章类型。
我将上述对象称为:
var decorators = require('*/cartridge/models/product/decorators/index');
decorators.badge(product, variantProduct);
我想知道如何在添加自定义constructor
时扩展现有的类?
这里仅语法基于Node Js
,但是此代码是为Salesforce B2C Commerce中的SFRA编写的。
答案 0 :(得分:0)
您需要做的只是在index.js
文件中
var indexBase = module.superModule;
代替:
var indexBase = require('*/cartridge/models/product/decorators/index');
它将完全正常工作。