创建一个自动窗体简单的输入字段现在我有多个过滤器流星
<template name="filter1">
{{> selectFilter fieldName=fieldName options=options}}
</template>
<template name="filter2">
{{> selectFilter fieldName=fieldName options=options}}
</template>
<template name="filter3">
{{> selectFilter fieldName=fieldName options=options}}
</template>
<template name="filter4">
{{> selectFilter fieldName=fieldName options=options}}
</template>
<template name="selectFilter">
<select name="{{fieldName}}" class="form-control">
<option value="">Any</option>
{{#each options}}
<option value="{{value}}" selected="{{#if sessionEquals ../fieldName value}}selected{{/if}}">{{label}}</option>
{{/each}}
</select>
</template>
我与
Template.filter1.helpers({
fieldName: 'fieldName',
options: getOptions
});
Template.selectFilter.helpers({
sessionEquals: function (key, value) {
return Session.equals(key, value);
}
});
Template.selectFilter.events({
'change select': function (event) {
var $el = $(event.currentTarget);
var variableName = $el.attr('name');
var value = $el.val();
if (isInt(value)) {
value = parseInt(value, 10);
}
Session.set(variableName, value);
},
});
随着collection2
填充,我已经设置options
有:
field1: {
type: Number,
optional: true,
autoform: {
options: getOptionsForField1,
},
},
是否可以使用autoform
和collection2
来创建一个简单的select
元素已经填充了选项,而无需自己创建html并使用选项填充模板?
我想我可以做类似{{> quickField name=fieldName }}
的东西,但我不知道如何告诉它应该从哪个模式看,以及如何对选择变化做出反应。
我只是觉得我似乎很愚蠢,既指定我的模式中的选项,也填充选项到模板。这应该自动完成。
简短的回答是肯定的,我会提供一个例子不久 – challett