Javascript 传递集合ID以在Meteor中生成表单
我有一个“国家”集合,其中显示了国家及其信息的列表。book选项将用户引导到“活动”表单,该表单具有下拉字段,如,From。如何传递“Country”ID,以便“Activity”中的表单字段属于用户单击其Book按钮的“Country”。我认为我应该使用反应式var来存储国家id,然后执行相应的操作来更改表单字段。我对这一点还比较陌生,如果能对这一方法有所了解,我将不胜感激 活动集合的提交代码为:Javascript 传递集合ID以在Meteor中生成表单,javascript,meteor,meteorite,meteor-blaze,meteor-helper,Javascript,Meteor,Meteorite,Meteor Blaze,Meteor Helper,我有一个“国家”集合,其中显示了国家及其信息的列表。book选项将用户引导到“活动”表单,该表单具有下拉字段,如,From。如何传递“Country”ID,以便“Activity”中的表单字段属于用户单击其Book按钮的“Country”。我认为我应该使用反应式var来存储国家id,然后执行相应的操作来更改表单字段。我对这一点还比较陌生,如果能对这一方法有所了解,我将不胜感激 活动集合的提交代码为: Template.activitySubmit.onRendered(function
Template.activitySubmit.onRendered(function () {
if (Session.get("submit-bypass") === true) {
Session.set("submit-bypass", false);
window.history.back();
}
$("#activity-goal").material_select();
});
Template.activitySubmit.events({
"submit form": function (e) {
e.preventDefault();
var title = $(e.target).find("#activity-title").val()
if (title.length === 0) {
throwError("You must have a title.");
$("activity-title").focus();
return;
}
var activty = {
title: title,
goal: parseInt($(e.target).find("#activity-goal").val())
};
Meteor.call("activityInsert", activty, function (error, result) {
if (error) {
throwError(error.reason);
return;
}
Session.set("submit-bypass", true);
Router.go("activityPage", { _id: result._id });
});
}
});
这就是您应该如何使用反应式var包
meteor Add reactive var
activitySubmit.JS
Template.activitySubmit.onRendered(函数(){
this.selectedCountry=new ReactiveVar(空);
});
会话.get('myId')
您可以使用反应式var在同一模板中存储一些数据@alexndm嘿,我也在考虑同样的问题,但我不太清楚具体的实现。我正期待着一个新的开始!再次感谢你,伙计,但我计划的方式是在点击“book”按钮时存储国家的ID,然后在Acitivity.js中使用ID来更改值。我如何使用反应式变量来捕获列表中对象的ID?如果它在多个文件中使用,也许你应该使用会话?我要做的是对我来说更简单的事情,因为我对meteor还很陌生。一旦我拿到身份证,我就可以在JS中完成剩下的工作,但是流星部分把我搞砸了。这就是列表页面如何处理使用mongodb集合生成的每个项。我需要一种方法来区分用户点击了哪个“book”按钮。谢谢你花时间,很抱歉我自己也试过了,但是我无法实现。最简单的方法是使用会话。单击事件(或任何事件)m只需执行
会话。设置('myId',id)
,其中id是您希望存储的值,然后使用会话在应用程序中的任何位置检索它。获取('myId')
谢谢Alex,我欠你一个:)!我现在就试试这个。
Template.activitySubmit.events({
'change #country': function(e){
var country = $(e.target).val()
var instance = Template.instance();
instance.selectedCountry.set(country);
},
'submit form': function (e) {
....
var instance = Template.instance();
var country = instance.selectedCountry.get(country);
....
}
});`