【问题标题】:Meteor - Pass data to templateMeteor - 将数据传递给模板
【发布时间】:2016-06-20 04:38:35
【问题描述】:

我正在使用 Iron:Router,并且我的模板中有以下事件。

如果Guests.update 函数成功,我想重定向到具有给定属性的thanks 模板。

如何在我的thanks 模板中接收success 属性以便在那里使用它?

Template.guest.events({
  'submit form': function(event, template){
    event.preventDefault();
    var foo = $('[name=foo]').val();
    Guests.update(this._id, {
      $set: {
        foo: foo,
      }
    }, function(error, result){
      if (error) {
        console.log(error);
      } else {
        Router.go('thanks', { success:true, id: this._id } });
      }
    });
  }
});

【问题讨论】:

    标签: javascript meteor meteor-blaze


    【解决方案1】:

    在你的路由定义中添加参数:

    Router.route('/thanks/:success/:_id', function () {
      let success = this.params.success;
      let _id = this.params._id;
      ...
    });
    

    【讨论】:

    • 您也可以使用 Session 变量来实现。 Session.set('myObject',{ success:true, id: this._id }) 然后.get() 来自您的模板。由你决定。
    • 除非绝对需要,否则不建议使用会话变量(全局范围,无命名空间)。路由参数是推荐的模式 如果 URL 作为链接共享,则使用会话变量将不允许状态恢复。
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 2016-02-10
    • 2015-09-02
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多