【发布时间】:2018-08-03 15:46:51
【问题描述】:
我有一个在日期列上定义了自定义过滤器的反应表
Template.displayoptions.created = function () {
this.timeFilter = new ReactiveTable.Filter('time-filter', ['deadline']);
};
Template.displayoptions.events({
'click .form-check-input'(event,template) {
var timefilter = template.find('#timefilter:checked').value;
var today = new Date();
var thisweek = new Date(moment(today).add(7, 'days'));
var thismonth = new Date(moment(today).add(1, 'month'));
switch(timefilter){
case "today":
template.timeFilter.set({"$gte": today});
break;
case "thisweek":
template.timeFilter.set({"$and":[{"$gte": today}, {"$lt" : thisweek}]});
break;
case "thismonth":
template.timeFilter.set({"$and":[{"$gte": today}, {"$lt" : thismonth}]});
break;
}
}
});
触发事件时(单选按钮选择今天/周/月),表格闪烁但数据保持不变。
可能缺少什么?
rowsPerPage: 5,
filters: ['time-filter'],
showNavigationRowsPerPage: false,
showFilter: false,
filter.get(我不确定这是否需要)
Template.displayoptions.helpers({
checked: function () {
var istimeFilter = _.isObject(Template.instance().timeFilter.get());
if (istimeFilter) {
return "checked";
}
return "";
}
});
单选按钮
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="timefilter" name="timefilter" value="today" {{checked}}>
<label class="form-check-label" for="timefilter">Today</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="timefilter" name="timefilter" value="thisweek" {{checked}}>
<label class="form-check-label" for="timefilter">This Week</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="timefilter" name="timefilter" value="thismonth" {{checked}}>
<label class="form-check-label" for="timefilter">This Month</label>
</div>
【问题讨论】:
-
您能否添加使用 .get 访问反应变量的代码部分?
-
@Jankapunkt 相应地编辑了我的问题
标签: javascript mongodb meteor filter reactive