ApostropheCMS Moog类型-扩展您自己的自定义模块

时间:2018-08-27 03:16:42

标签: apostrophe-cms

扩展您自己的模块

对于刚接触OOP语言的初学者来说,这个问题基本上是一个好问题。我发现您的代码here表示使用afterConstruct扩展模块是一种很好的做法。您能教我们如何从其他模块进行 EXTEND 以及从其他模块进行 IMPLEMENT 扩展方法吗?在此处构建我自己的联系表单模块时,我遵循了您的示例:

  afterConstruct: function(self) {
    self.setSubmitSchema();
  },

  construct: function(self, options) {

    self.setSubmitSchema = function() {
      self.submitSchema = self.apos.schemas.subset(self.schema,
        [ 'name', 'email', 'title', 'body' ]
      );
    };

以下是我使用Moog Type的观点,对吗?

  

构造->构造所附带的每种方法。 beforeConstruct ->仅当您将诸如 addFields removeFields alterFields 之类的选项扩展到它时才适用。 afterConstruct ->适用于扩展模块/方法

1 个答案:

答案 0 :(得分:1)

这个问题太笼统了,但是您所需要的是正确完成此问题的一个很好的例子。

为此,只需查看我们实现的任何模块模块,例如查看apostrophe-redirects,该模块即可扩展模块,并添加beforeSave方法重写以执行某些自定义操作。

另请参见apostrophe-samples项目,该项目包含带有覆盖的piece模块的几个示例。同样,它们扩展了apostrophe-pieces,因此可以证明您的要求。

关于三个功能:

beforeConstruct用于先调整options,然后再扩展模块才能看到它。例如,当子类需要向addFields添加字段时有用。

construct用于将方法附加到self

afterConstruct用于初始化,通过调用其中一些方法来完成。现在是合适的时机,因为子类模块有机会在afterConstruct运行之前覆盖其中的某些方法。