在Template.events中处理下一个更高的元素

时间:2016-03-01 18:36:22

标签: javascript meteor checkbox meteor-blaze

我有一个Checkbox组列表。每个Checkbox组都有一个名称。 我通过遍历列表来显示它们。 现在,当我想通过使用“this”更新每个复选框组(具有相同模式)的复选框时,我只获取有关相应复选框的信息。 如何获取复选框组名称?

架构:

CheckboxSchema = new SimpleSchema({
  name: {
    type: String,
    label: "Name"
  },
  checked: {
    type: Boolean,
    label: "Checked",
    defaultValue: false
  }
});

GroupSchema = new SimpleSchema(
listName: {
    type: String,
    label: "GroupName"
  },
  checkboxes: {
    type: [CheckboxSchema]
  }
}]);

在我想要访问每个Checkbox组的ID的事件中,将其传递给Meteor.call,以将每个复选框的值更新为其对应的组。

Template.checkboxGroup.events({
"click .toggle-checked": function(event) {
    var self = this;
    event.preventDefault();
    // Need checkbox group id
    Meteor.call("setCheckboxgroup", self._id, !self.checked);
}

});

提前致谢! VIN

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

var group = Groups.findOne({ checkboxes: self._id });
var groupId = "";
if( group ) {
  groupId = group._id;
}

if( groupId ) {
  Meteor.call("setCheckboxgroup", self._id, !self.checked);
}

如果这不起作用,我相信你需要使用$ elemMatch。