为Meteor中的每个表单定义autoform hook

时间:2015-07-16 14:02:55

标签: javascript node.js meteor meteor-autoform

我在Meteor中有每个循环,我使用autoform更新每个项目(就像在http://autoform.meteor.com/update-each中所描述的那样)。

我的问题是我通常通过钩子与

创建通知
AutoForm.hooks({
  myFormId: {
    onSuccess: function(formType, result) {
      Notifications.success('Title', 'Text.');
    }
  }
});

但由于我的所有表单都有唯一的ID,我不能使用它。如何创建与模板中的所有表单匹配的钩子,或者具有与正则表达式“unique-id-?”匹配的名称?哪里?是docId吗?

1 个答案:

答案 0 :(得分:1)

这可能不是最佳解决方案,但它有效:

Template["updateEach"].helpers({
  items: function () {
    return Items.find({}, {sort: {name: 1}});
  },
  makeUniqueID: function () {
    return "update-each-" + this._id;
  }
});

Template.updateEach.onRendered(function () {
  var hooksObject = {
    onSuccess: function (formType, result) {
      Notifications.success('Title', 'Text.');
    }
  };
  var formIds = Items.find().map(function (item) {
    return "update-each-" + item._id;
  });
  AutoForm.addHooks(formIds, hooksObject);
});