一部のクライアント側 JS で使用される配列にドキュメントのリストを返したいと思います。私の apostrophe-pages モジュールには、この apos.docs.find 呼び出しがあり、これは機能しており、取得する必要があるドキュメントを返します。このドキュメントの配列を取得したので、データをクライアント側の JS に公開する必要があります。
ドキュメントを読むと、おそらくこれを行うためにピースが推奨されているように見えますが、ピースをウィジェットに入れ、次にウィジェットをページに入れる必要があるようです。
モジュールの分離に関するベストプラクティスの懸念は理解していますが、このデータをクライアントでできるだけ簡単かつ簡単に使用できるようにしたいと考えています (少し時間がかかります)。
この autoCompleteData 配列をフロント エンドに公開するシンプルで簡単な方法はありますか?クライアント コードで以下のようなことを行うことができますか?
(ご協力ありがとうございます。ここ数日でアポストロフィに関する質問がいくつかありましたが、バックエンド オブジェクトをフロント エンドに接続するためのギャップを埋めるのに役立つ最後のピースの 1 つだと思います。)
\lib\modules\apostrophe-pages\views\pages\home.html
<script>
var page = apos.page;
$('#displayDocs').text(page.autoCompleteData);
</script>
\lib\modules\apostrophe-pages\index.js
module.exports = {
types: [
{ name: 'default', label: 'Default Page' },
{ name: 'apostrophe-blog-page', label: 'Blog Index' },
],
autoCompleteData: [],
construct: function(self, options) {
self.pageBeforeSend = function(req, callback) {
let criteria = [
{"type": "apostrophe-blog"},
{"published": true}
];
criteria = { $and: criteria };
self.apos.docs.find(req, criteria).sort({ title: 1 }).toObject(function(err, collection){
self.autoCompleteData = collection;
});
return callback(null);
}
}
}