1

mongoDB に「Ads」コレクションが 1 つあり、次の形式のスキーマが多すぎます。

AdsBaseSchema = new SimpleSchema({
  _parentId: {
    type: String,
    optional: true
  },
  title: {
    type: String,
    label: "Title",
    max: 200
  }
  description: {
    type: String,
    label: "Description",
    optional: true
  }
});

しかし、それらはいくつかのフィールドで異なります。

オートフォームの挿入に使用したいと思います。このような:

{{> quickForm schema="AdsBaseSchema" id="insBaseAds" type="method" meteormethod="insBaseAds"}}

この方法で:

insBaseAds: function(doc) {
    Ads.insert(doc);
    this.unblock();
}

このアプローチは正しく機能します。しかし、これは私の質問です:

すべてのスキーマにこのアプローチを使用するのは難しいです! (スキーマが多すぎるので言ったように)

聞きたい:

meteor が以下のオートフォームのようなものを使用し、すべてのスキーマに対して 1 つのオートフォーム (フォーム ジェネレーター) のみを使用することは可能ですか?

{{> quickForm collection="Ads" schema="AdsBaseSchema" id="insertAds" type="insert"}}

オートフォームで「コレクション」属性と「スキーマ」属性の両方を使用することは可能ですか??

4

1 に答える 1

0

この問題の解決策を見つけました:

次のように、スキーマ名を動的に返すテンプレートのヘルパーを作成してみることができます。

{{> quickForm collection="Ads" schema=schema id="insertAds" type="insert"}}

ヘルパー:

Template['myTemplate'].helpers({
 schema() {
 //Write your logic here
 return "adsBaseSchema";
 }
})

幸いなことに、それはうまくいきました。

于 2016-03-03T11:14:48.573 に答える