Pieces のチュートリアル ( http://apostrophecms.org/docs/tutorials/getting-started/reusable-content-with-pieces.html ) の次のコード スニペットでは、型エラーが発生します: self[name] is not a function - lib/modules/apostrophe-docs/lib/cursor の 1031 行目。
新しい人を追加したり作品を保存するために保存ボタンをクリックすると、エラーが発生します。
オブジェクトが実際には私が考えているものではないか、null 値を返すために、これが発生する可能性があることを理解しています。どちらも可能性は低いようです。
チュートリアルを順を追って進めているので、カーソル部分だけをブラウズしました。
people.index.js ファイルは次のとおりです。
module.exports = {
extend: 'apostrophe-pieces',
name: 'person',
label: 'Person',
pluralLabel: 'People',
addFields: [
{
name: 'title',
label: 'Full Name',
type: 'string',
required: true,
contextual: true
},
{
name: 'firstName',
label: 'First Name',
type: 'string',
required: true
},
{
name: 'lastName',
label: 'Last Name',
type: 'string',
required:true
},
{
name: 'body',
label: 'Biography',
type: 'area',
options: {
widgets: {
'apostrophe-rich-text': {
controls: [ 'Bold', 'Italic', 'Link', 'Unlink' ]
},
'apostrophe-images': {}
}
}
},
{
name: 'phone',
label: 'Phone',
type: 'string'
},
{
name: 'thumbnail',
label: 'Thumbnail',
type: 'singleton',
widgetType: 'apostrophe-images',
options: {
limit: 1,
minSize: [ 200, 200 ],
aspectRatio: [ 1, 1 ]
}
}
],
arrangeFields: [
{
name: 'contact',
label: 'Contact',
fields: [ 'firstName', 'lastName', 'phone' ]
},
{
name: 'admin',
name: 'Admin',
fields: [ 'slug', 'published', 'tags' ]
},
{
name: 'content',
name: 'Biographical',
fields: [ 'thumbnail', 'body' ]
}
],
construct: function(self, options) {
var superPushAssets = self.pushAssets;
self.pushAssets = function() {
superPushAssets();
self.pushAsset('stylesheet', 'always', { when: 'always' });
};
},
construct: function(self, options) {
self.beforeSave = function(req, piece, options, callback) {
piece.title = piece.firstName + ' ' + piece.lastName;
return callback();
};
}
};