gpt4 book ai didi

javascript - 将 Meteor 复选框状态与数据库同步

转载 作者:行者123 更新时间:2023-11-29 21:46:49 25 4
gpt4 key购买 nike

我的应用程序中有一个复选框,我想做的是存储复选框的状态,即是否选中。一旦用户选中复选框,它就会将其存储到数据库中,下次他访问该页面时应该选中它。

我正在尝试使用 session ,它在同一应用程序的不同页面上工作,但是一旦我重新加载页面,它就消失了。我想 session 适用于临时数据。永久数据应该使用什么?

HTML

<template name="test">
<input type="checkbox" id="check" checked="{{Checked}}">
</template>

JS

Template.Test.events({
'click #check':function(e){
Session.set('Checked', e.target.checked);
}
})

Template.Test.helpers({
Checked: function(){
return Session.get("Checked");
}
})

最佳答案

http://meteorpad.com/pad/u3D5TDaMDDg8Aw2ie/Leaderboard

How long do certain Meteor data sources live for?

由于此复选框设置已同步到已登录用户,因此您想将此设置保存在已登录用户上。

HTML

<body>

{{> loginButtons }}

{{#if currentUser}}
{{> Test }}
{{/if}}

</body>


<template name="Test">
<div class="container">
<div class="row">
<div class="col-xs-8 col-xs-offset-2">
<input type="checkbox" id="check" checked="{{isChecked}}">
</div>
</div>
</div>
</template>

Meteor Users 集合有点特殊,您需要阅读它的功能

但是现在,您需要从客户那里知道:

  • 您可以使用 Meteor.user()

  • 访问当前登录的用户
  • 默认情况下,Meteor 向客户端发布 Meteor.user().profile 字段。

  • 从客户端,您只能编辑 Meteor.user().profile 字段。

  • 为了编辑/更新 Meteor 用户,您必须在 Mongo update 命令中输入精确的 userId(用户文档的 ID)- Meteor.users.update({_id: userId}, {$set: {"profile.isChecked": isChecked}});

JS

Template.Test.events({
'click #check':function(e){
var userId = Meteor.user()._id;
var isChecked = e.target.checked;
Meteor.users.update({_id: userId}, {$set: {"profile.isChecked": isChecked}});
}
})

Template.Test.helpers({
isChecked: function(){
return Meteor.user().profile.isChecked;
}
})

Accounts.ui.config({
passwordSignupFields: "USERNAME_ONLY"
});

关于javascript - 将 Meteor 复选框状态与数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com