传递集合ID以在Meteor中生成表单

时间:2015-08-07 14:59:59

标签: javascript meteor meteorite meteor-blaze meteor-helper

我有一个“国家/地区”集合,其中显示了国家/地区及其信息的列表。书籍选项将用户引导至“活动”表单,该表单包含To,From等下拉字段。如何传递“国家/地区”ID,以便“活动”中的表单字段属于用户单击其“书籍”按钮的“国家/地区”。我想我应该使用一个被动变量来存储国家ID,然后执行操作来相应地更改表单字段。我对此非常陌生,对这种方法的追求将深受赞赏。

活动收集的提交代码是:

    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 });
        });
    }
});

1 个答案:

答案 0 :(得分:0)

这是你应该如何使用反应性var包

  1. 将包添加到您的项目中,在终端meteor add reactive-var
  2. 打开模板的JS文件,例如activitySubmit.js
  3. 声明反应性var就像这样 Template.activitySubmit.onRendered(function () { this.selectedCountry = new ReactiveVar(null); });
  4. 然后根据需要更新反应性var并使用它
  5. `

    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);
         ....
      }
    
    });`
    
    1. 如果您想跨越多个文件(全局)传递数据,您可以简单地使用Session。 Session.set('myId', id)Session.get('myId')