ApostropheCMS Moog 类型 - 扩展您自己的自定义模块
ApostropheCMS Moog Type - Extend your own Custom Module
扩展您自己的模块
对于刚接触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 的看法,对吗?
construct -> every method ATTACHED to the construct . beforeConstruct -> Only applicable if you extending options like addFields , removeFields and alterFields to it. afterConstruct -> Applicable for EXTENDING module/method
这个问题太笼统了,但是你需要的是正确完成这个问题的一个很好的例子。
为此,只需查看我们已实现的任何 pieces 模块,例如查看 apostrophe-redirects,它扩展了 pieces,添加了 beforeSave
方法重写以执行自定义操作。
另请参阅 apostrophe-samples 项目,其中包含多个带有覆盖的片段模块示例。同样,这些扩展 apostrophe-pieces
,因此它们展示了您所询问的内容。
关于三个函数:
beforeConstruct
用于在您要扩展的模块看到它之前先调整 options
。例如,当子类需要向 addFields
添加字段时很有用。
construct
用于将方法附加到 self
。
而afterConstruct
用于初始化,通过调用其中一些方法来完成。这是正确的时间,因为子类模块有机会在 afterConstruct
运行之前重写其中一些方法。
扩展您自己的模块
对于刚接触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 的看法,对吗?
construct -> every method ATTACHED to the construct . beforeConstruct -> Only applicable if you extending options like addFields , removeFields and alterFields to it. afterConstruct -> Applicable for EXTENDING module/method
这个问题太笼统了,但是你需要的是正确完成这个问题的一个很好的例子。
为此,只需查看我们已实现的任何 pieces 模块,例如查看 apostrophe-redirects,它扩展了 pieces,添加了 beforeSave
方法重写以执行自定义操作。
另请参阅 apostrophe-samples 项目,其中包含多个带有覆盖的片段模块示例。同样,这些扩展 apostrophe-pieces
,因此它们展示了您所询问的内容。
关于三个函数:
beforeConstruct
用于在您要扩展的模块看到它之前先调整 options
。例如,当子类需要向 addFields
添加字段时很有用。
construct
用于将方法附加到 self
。
而afterConstruct
用于初始化,通过调用其中一些方法来完成。这是正确的时间,因为子类模块有机会在 afterConstruct
运行之前重写其中一些方法。