Javascript 我如何允许表中的多行能够通过物化开关打开或关闭?

Javascript 我如何允许表中的多行能够通过物化开关打开或关闭?,javascript,meteor,materialize,Javascript,Meteor,Materialize,我试图实现的是允许一个表中的多行在不影响同一个表中其他行的情况下打开或关闭。 当我只有一排的时候,它工作得很好。但当我添加另一行时,开关开始关闭其他行。 下面是我的意思的视频剪辑-> 下面是代码-> //客户端代码 Template.orionMaterializeLayout.events({ “更改开关输入”:功能(事件){ var change=event.target.checked; Meteor.call('toggleHidden',change); } }); //服务器代码

我试图实现的是允许一个表中的多行在不影响同一个表中其他行的情况下打开或关闭。 当我只有一排的时候,它工作得很好。但当我添加另一行时,开关开始关闭其他行。 下面是我的意思的视频剪辑->

下面是代码->
//客户端代码
Template.orionMaterializeLayout.events({
“更改开关输入”:功能(事件){
var change=event.target.checked;
Meteor.call('toggleHidden',change);
}
});
//服务器代码
流星法({
“toggleHidden”:函数(更改){
控制台日志(更改);
update({},{$set:{hidden:change}});
}
});
//集合代码,是什么呈现了表上的开/关开关
Banner=新的orion.collection('幻灯片'{
title:'添加图像',//页面的标题
链接:{
标题:“幻灯片放映”,
部分:'顶部',
图像:“”
},
表格:{
栏目:[
{数据:'隐藏',标题:'可见性',
渲染:函数(doc){
如果(doc==true){
返回“OffOn”
}否则{
返回“OffOn”
}
}
}
]
}

});看起来您希望通过切换将更改写入后端的数据库(服务器上的Mongo集合)。但是,您的
Banner.update()
调用没有指定要更新的文档-因此它会更新集合中的每个文档

您需要做两件事(按原样使用代码)。首先,捕获触发事件处理程序的数据上下文。通常,这将是处理程序中的
this
。因此
this.\u id
应该返回文档id。其次,您需要将该id传递给您的方法,以确保它只更新该文档

如果没有所有的代码,就很难保证答案正确(尤其是不知道模板中的数据上下文),但以下内容可能会起作用:

// ClIENT CODE
Template.orionMaterializeLayout.events({
    "change .switch input": function (event) {
        var change = event.target.checked;
        Meteor.call('toggleHidden', change, this._id);
    }
});

// SERVER CODE
Meteor.methods({
    'toggleHidden' : function(change, docId){
        console.log(change);
        Banner.update({_id: docId}, {$set:{hidden: change }});
    }
});

如果它正在打开和关闭您不需要的行,请按类或ID筛选这些行。仅打开具有正确类或id的行。