gpt4 book ai didi

javascript - 仅使用 id 在 Meteor 中显示相关文档

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

我认为这个问题与这里已有的问题不同。我一直在努力解决这个问题,找不到好的解决方案。

假设是这样的:

//ResourceOne { name: "foobar" } ... ResourceTwo { name: "donuts" }
Resources = new Meteor.Collection('resources');

//{ input: ResourceOneID, output: ResourceTwoID }
Connections = new Meteor.Collection('connections');

连接将资源连接到其他资源,仅存储它们的 _id

我想在表单中显示连接列表

foobar --> donuts

我到底该怎么做?

现在我有:

{{#each connections}}
<a href="#">{{ input_name }} --> {{ output_name }}</a>
{{/each}}

由模板助手提供支持:

input_name: function() {
return Resources.find( { _id: this.input } ).fetch()[0].name;
}

这可行,但只要页面未完全刷新就会失败。

执行此操作的更好方法是什么?

最佳答案

这可能是因为您没有等待数据完全到达。当你运行这个

Resources.find( { _id: this.input } ).fetch()[0].name;

您假设 Resoureces.find(..).fetch()[0] 有结果,但情况并非总是如此。当您的页面最初加载时,数据可能尚未到达浏览器,结果将为 null。如果您检查 name 属性,它将引发异常。

你只需要处理这个案例就可以了:

var resource = Resources.findOne( { _id: this.input } );
return resource && resource.name;

注意:findOne() 等同于.fetch()[0]

所以这里 resource 返回 null 如果它是 null 并且不会检查它的 name 属性。

关于javascript - 仅使用 id 在 Meteor 中显示相关文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396519/

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