我有一个集合。默认情况下,整个集合显示在页面的表格中。然后,用户可以通过在1个或多个文本框中输入过滤器数据来缩小结果范围。动态创建一个查询查询,并让它触发帮手
所以我花了最后几个小时试图让这项工作做出反应,但失败了。助手低于:
Template.localBoardTemplate.helpers({
localDelivery: function(){
return localBoardColl.find(query);
}
});
现在我对个人的文本框,所有触发相同功能的动态构建查询KEYUP事件:
function loadBoardRecords(){
var query = {};
if($('input:text[name=localBoardTripNumSetting]').val() != ""){
query['tripNumber'] = {$regex: new RegExp('^' + $('input:text[name=localBoardTripNumSetting]').val(), 'i')};
}
if($('input:text[name=localBoardLoadNumSetting]').val() != ""){
query['orderLoadNum'] = {$regex: new RegExp('^' + $('input:text[name=localBoardLoadNumSetting]').val(), 'i')};
}
if($('input:text[name=localBoardEquipmentSetting]').val() != ""){
query['equipmentTypeName'] = {$regex: new RegExp('^' + $('input:text[name=localBoardEquipmentSetting]').val(), 'i')};
}
if($('input:text[name=localBoardCustomerSetting]').val() != ""){
query['Customer'] = {$regex: new RegExp('^' + $('input:text[name=localBoardCustomerSetting]').val(), 'i')};
}
if($('input:text[name=localBoardTrailerNumSetting]').val() != ""){
query['trailerNum'] = {$regex: new RegExp('^' + $('input:text[name=localBoardTrailerNumSetting]').val(), 'i')};
}
if($('input:text[name=localBoardPUCitySetting]').val() != ""){
query['puCity'] = {$regex: new RegExp('^' + $('input:text[name=localBoardPUCitySetting]').val(), 'i')};
}
if($('input:text[name=localBoardPUStateSetting]').val() != ""){
query['puState'] = {$regex: new RegExp('^' + $('input:text[name=localBoardPUStateSetting]').val(), 'i')};
}
if($('#localBoardPUDateSetting').val() != ""){
puDate = moment($('#localBoardPUDateSetting').val(), "MM-DD-YYYY").toDate();
query['puDate'] = puDate;
}
if($('input:text[name=localBoardDELCitySetting]').val() != ""){
query['delCity'] = {$regex: new RegExp('^' + $('input:text[name=localBoardDELCitySetting]').val(), 'i')};
}
if($('input:text[name=localBoardDELStateSetting]').val() != ""){
query['delState'] = {$regex: new RegExp('^' + $('input:text[name=localBoardDELStateSetting]').val(), 'i')};
}
if($('#localBoardDELDateSetting').val() != ""){
delDate = moment($('#localBoardDELDateSetting').val(), "MM-DD-YYYY").toDate();
query['delDate'] = delDate;
}
}
现在,我一直在使用一个会话变量来保存尝试该查询失败,因为您不能在会话变量中嵌套对象。然后我尝试了一个名为ReactiveObj的包,并且我也无法工作。哎呀我甚至尝试了一个ReactiveArr,但是这不是被动的,除非你.list它并且不适用于find中的查询。
这不能是这个难题,我可能忽略了一些小事。我希望有人能指出我写这个问题的写封装或解决方案。
这样做是否仍然会在收集新项目时自动更新dom?从我的理解你在这里做的只是轮询集合,每当按钮被按下并保存到反应变量光标。如果另一个用户将某些内容添加到集合中会发生什么它会作出相应的反应? – BobFranz
光标是reative –