FS.Collection オブジェクトに基づいてリアクティブ テーブルを実装するのに苦労しています。aldeed/meteor-tabular と aslagle/reactive-table の両方を試しましたが、コレクションが存在しないように見えるため、どちらも失敗します。ただし、リアクティブ テーブル パッケージを使用せずにコレクションからフィールドをサブスクライブして取得すると、データは問題なく表示されます。私は何が欠けていますか?両方のパッケージが機能しないのは偶然ではありません...
aslagle/reactive-table パッケージを使用した私の実装は次のとおりです...
//template
<template name="documentTable">
{{#if Template.subscriptionsReady}}
{{> reactiveTable settings=settings}}
{{else}}
{{> spinner}}
{{/if}}
{{#if currentUser}}
{{> fileUpload}}
{{/if}}
</template>
//documents js
Template.documents.onCreated( () => {
p_id = FlowRouter.current().params.id;
Template.instance().subscribe('documents', p_id);
});
Template.documents.helpers({
documents: function () {
return Documents.find();
},
settings: function () {
return {
collection: documents,
showFilter: false,
rowsPerPage: 5,
showNavigation: auto,
showRowCount: true,
fields: ['_id','userId','propertyId','uploadedAt']
};
}
});
//collection definition
if (Meteor.isServer) {
var docStore = new FS.Store.S3("documents", {
region: "eu-west-1",
accessKeyId: (Meteor.isServer && !process.env.AWS_ACCESS_KEY_ID ? Meteor.settings.AWSAccessKeyId : null),
secretAccessKey: (Meteor.isServer && !process.env.AWS_SECRET_ACCESS_KEY ? Meteor.settings.AWSSecretAccessKey : null),
bucket: Meteor.isServer && process.env.AWS_S3_BUCKET || Meteor.settings.AWSBucket,
folder: "documents"
});
Documents = new FS.Collection("Documents", {
stores: [docStore],
filter: {
allow: {
contentTypes: ['application/pdf']
}
}
});
}
// end server
if (Meteor.isClient) {
var docStore = new FS.Store.S3("documents");
Documents = new FS.Collection("Documents", {
stores: [docStore],
filter: {
allow: {
contentTypes: ['application/pdf']
}
}
});
}
// end client
// allow rules
Documents.allow({
insert: function(userId) {
// only allow insert from signed in user
return userId != null;
},
update: function(userId) {
// only allow update from signed in uesr
return userId != null;
},
download: function() {
return true;
},
});
リアクティブ テーブルの場合、引数が Mongo.Collection、カーソル、または配列のインスタンスではないというエラーが表示されますが、meteor-tabular では、ReferenceError が発生し、Documents ではないことが示されているため、起動に失敗します。定義されています。
これについて何か考えている人はいますか?