将数据插入集合后,显示集合的模板仅在刷新后显示新添加的数据。我查看了反应变量,但我很难理解如何在这种情况下使用它们。任何见解将不胜感激。
我的代码如下。
模板助手
我根据选择的模板打电话来获取订单,我将结果存储在会话中。我返回要在模板中使用的会话变量
Template.ordersTable.helpers({
orders : function () {
var orderType = Session.get('currentOrderTemplate');
var currentUserId = Meteor.userId();
if(orderType == 3) {
// Return all orders created by logged in user.
Meteor.call('getOrders', {}, function(err, data) {
if(err)
console.log(err);
Session.set('orders', data);
});
} else {
Meteor.call('getOrders', {orderType : orderType}, function(err, data) {
if(err)
console.log(err);
Session.set('orders', data);
});
}
return Session.get('orders');
}
});
方法
Meteor.methods({
'addOrder' : function(order) {
OrderList.insert(order);
check(order, Object);
},
'getOrders' : function (filter) {
check(filter, Object);
return OrderList.find(filter).fetch();
}
});
需要任何其他信息,请告知我们。
感谢。
答案 0 :(得分:1)
方法调用不是反应式数据源。而且,你正在不必要地努力工作。只需直接在客户端上进行查找:
Template.ordersTable.helpers({
orders : function () {
var orderType = Session.get('currentOrderTemplate');
var currentUserId = Meteor.userId();
if (orderType == 3) {
// Return all orders created by logged in user.
return OrderList.find({});
} else {
return OrderList.find({orderType : orderType});
}
}
});
请确保您订阅了OrderList集合。