如何使用autoform获取模式中的下拉选项?

时间:2015-06-03 08:04:31

标签: meteor meteor-autoform meteor-collection2

我想从另一个集合(即MyCollection)获取下拉选项。在这个集合中,我有所有的选项值(即选项)。我正在使用collection2包我想获得架构中的所有选项,而不是使用帮助器。

定义集合:

MyCollection = new Mongo.Collection('mycollection');

集合结构:

{
    options : [A, B, C, D, E, F]
}

collection2 schema:

some-schema = new SimpleSchema({

     dropdown : {
         type : String,
         label : "Select One",
         autoform : {
               options: /*....*/
         }
     }
});

html:

{{#autoForm schema='some-schema' id='some-id' type="method" meteormethod="some-method"}}
    {{> afQuickField name='dropdown'}}
{{/autoForm}}

任何建议......

1 个答案:

答案 0 :(得分:4)

您可以使用将在反应计算中执行的函数来动态计算可用选项列表。

SomeSchema = new SimpleSchema({
  [...]
  dropdown : {
    type : String,
    label : "Select One",
    autoform : {
      options: function(){
        var doc = MyCollection.findOne();
        var docOptions = doc && doc.options;
        return _.map(docOptions, function(value){
          return {
            label: value,
            value: value
          };
        });
      }
    }
  }
  [...]
});

您可以使用多种不同的方式在AutoForm选择中设置选项,请亲眼看看:https://github.com/aldeed/meteor-autoform#what-are-the-various-ways-i-can-specify-options-for-a-select-radio-group-or-checkbox-group