gpt4 book ai didi

javascript - 在模板事件中查找一个文档的正确方法?

转载 作者:行者123 更新时间:2023-12-02 14:24:01 24 4
gpt4 key购买 nike

我正在尝试在 Template.admin.events 代码中查找一个文档。我有一个表单和 onClick 我想验证输入的 ObjectID 的 ID 是否是我的集合中的现有文档,并获取该结果以将其显示在模板上。

我在客户端的事件代码:

Template.admin.events({
'click #btnAjouterObjet'(event) {
let objetIdInput = $('#object_id').val().toString();
Meteor.subscribe('objetsFindOne', objetIdInput, {
onReady: function () {
let obj = Objets.findOne();
if (obj) {
console.log("found");
console.log(obj);
objetsArr.push(objetIdInput);
}
else {
console.log("not found");
console.log(obj);
}
}
});
}
});

在我的 Objets api 中:

Meteor.publish('objetsFindOne', function objetsFindOne(param_id){
return Objets.find({_id : param_id});
})

我已经验证,当输入不同的 ID 时,我的 objetIdInput 总是会在点击时发生变化,但订阅总是返回输入的第一个 ID。我还添加了 onReady,因为否则它会返回未定义。

我是 Meteor 的新手,我也尝试过订阅所有集合并在客户端上进行查找,但我认为这不是最好的主意,因为我的集合有大约 22000 个文档。

最佳答案

只是对第一个答案进行一些详细说明,以了解如何更改此模式:

(1) 您应该将 Meteor.subscribe() 调用放在 Template.admin.onCreated() 函数中。

(2) 订阅从 react 值读取,例如 new ReactiveVar()

(3) 现在,只要 react 值发生变化,订阅就会重新运行。因此,在模板事件中,您将响应值设置为 id,并让订阅处理其余的事情。

Discover Meteor 和其他资源应该会对任何细节有所帮助。

关于javascript - 在模板事件中查找一个文档的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439566/

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