我试图动态订阅按日期过滤它们的集合。动态订阅日期范围流星
我的服务器代码看起来像这样
Meteor.publish('caja', function(skip, desde, hasta) {
if (desde && hasta === 'NA') {
return Cajas.find({}, {
skip: skip,
limit: 25,
sort: {
fecha: 1
}
});
} else if (hasta === 'NA') {
return Cajas.find({
fecha: {
$gte: new Date(desde)
}
}, {
skip: skip,
limit: 25,
sort: {
fecha: 1
}
});
} else {
return Cajas.find({
fecha: {
$gte: new Date(desde),
$lte: new Date(hasta)
}
}, {
skip: skip,
limit: 25,
sort: {
fecha: 1
}
});
}
});
我的客户端代码看起来像这样
var desdeVar, hastaVar, skipVar;
skipVar = new ReactiveVar(0);
desdeVar = new ReactiveVar('NA');
hastaVar = new ReactiveVar('NA');
Template.caja.onCreated(function() {
var self;
self = this;
return self.autorun(function() {
var desde, hasta, skip;
skip = skipVar.get();
desde = desdeVar.get();
hasta = hastaVar.get();
return self.subscribe('caja', skip, desde, hasta);
});
});
Template.caja.events({
'change #hasta': function(e, t) {
var hasta;
hasta = new Date($('#hasta').val());
return hastaVar.set(hasta);
},
'change #desde': function(e, t) {
var desde;
desde = new Date($('#desde').val());
desdeVar.set(desde);
return console.log(desdeVar.get());
}
});
所以,当我CH ange我想动态订阅客户端中建立的日期范围的日期。
我错过了什么?
只是好奇!您可以通过简单的{{#each}}来检查您是否在UI上获取订阅数据。如果您没有收到任何数据,则问题在于“onCreated()”中的描述。 –
我是,实际上下面有一个表引发订阅的数据,但是当我尝试按日期过滤时,数据仍然保持不变。 – Orozcorp