gpt4 book ai didi

meteor - 将用户输入的文本(输入)写回到它的文档中(在 mongo 中)

转载 作者:行者123 更新时间:2023-12-02 02:10:46 25 4
gpt4 key购买 nike

我有一个 meteor 模板渲染来自 mongo db 的文档。部分文档是可编辑的(它们呈现为 html 输入元素)。现在我需要数据流回文档(并流入 mongo),

执行此操作的最佳方法是什么?

如果我想写回 doc.a 的值,答案很简单:

doc = {a: "hello"}

不太容易:doc.a[0].z

doc = {a: [{z: "hello"}]}

因为要进行更新,必须记住路径为了写更新语句。每当字段更改时更新整个文档看起来很简单,但效率低下...

这是一个极其常见的用例,一些框架(EmberJs)有每当小部件的值时修改模型的神奇绑定(bind)变化。

这是如何在 meteor 中完成的?

最佳答案

正如您所指出的,每当输入发生变化时运行数据库更新命令可能效率不高。对于 slider 等可拖动元素尤其如此。

您可以做的一件事是将数据库查询分离到一个函数中,然后使用 underscore.js 对其进行去抖动。 ,像这样(未经测试):

var debouncedUpdate = _.debounce(function(newObject) {
CollectionName.update({_id: newObject._id},newObject);
},300,true);

Template.objectInput.events({
'keydown #text-input': function(event) {
var newValue = $(this.find('#text-input')).val();
var self = this;
self.value = newValue;
debouncedUpdate(self);
},
});

关于meteor - 将用户输入的文本(输入)写回到它的文档中(在 mongo 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965336/

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