Meteor 如何使用autoform在模式中获取下拉选项?
我想从另一个集合(即MyCollection)中获取下拉选项。在此集合中,我拥有所有选项值(即选项)。我使用的是collection2软件包,我只想获得模式中的所有选项,而不是使用helper 定义集合:Meteor 如何使用autoform在模式中获取下拉选项?,meteor,meteor-autoform,meteor-collection2,Meteor,Meteor Autoform,Meteor Collection2,我想从另一个集合(即MyCollection)中获取下拉选项。在此集合中,我拥有所有选项值(即选项)。我使用的是collection2软件包,我只想获得模式中的所有选项,而不是使用helper 定义集合: MyCollection = new Mongo.Collection('mycollection'); 收集结构: { options : [A, B, C, D, E, F] } 集合2模式: some-schema = new SimpleSchema({ dro
MyCollection = new Mongo.Collection('mycollection');
收集结构:
{
options : [A, B, C, D, E, F]
}
集合2模式:
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}}
任何建议…您可以使用将在反应式计算中执行的函数来动态计算可用选项列表
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
};
});
}
}
}
[...]
});
实际上,您可以使用多种不同的方式在自动表单选择中设置选项,请参见:您可以使用将在反应式计算中执行的函数来动态计算可用选项的列表
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
};
});
}
}
}
[...]
});
实际上,您可以使用多种不同的方式在自动表单选择中设置选项,请参见:@saimeunt..首先,thanxx..我尝试了您所说的,但是
var doc=MyCollection.findOne();而且
doc未定义。我的方案文件位置在/schema.js中。我没有在客户端和服务器之间使用发布-订阅技术。无论何时需要数据库中的数据,我都会使用Meteor.call(…)进行服务器调用。有什么可能的方法…我不明白不使用pub-sub。。。我认为您需要发布您的收集数据,然后在客户机上订阅,这样类似的示例将适用于you@iamhimadri我知道这是几年后的事了,但是您是否尝试过使用findOne({})代码>取而代之?@saimemount..首先是XX..我试过你说的,但是var doc=MyCollection.findOne();而且
doc未定义。我的方案文件位置在/schema.js中。我没有在客户端和服务器之间使用发布-订阅技术。无论何时需要数据库中的数据,我都会使用Meteor.call(…)进行服务器调用。有什么可能的方法…我不明白不使用pub-sub。。。我认为您需要发布您的收集数据,然后在客户机上订阅,这样类似的示例将适用于you@iamhimadri我知道这是几年后的事了,但是您是否尝试过使用findOne({})代码>而不是?