现在我有多个过滤器
<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 }}
,但我不知道如何判断它应该从哪个模式中查看,以及如何对选择更改做出反应。
我只是认为在我的模式中指定选项并填充模板的选项似乎很愚蠢。这应该自动完成。