gpt4 book ai didi

node.js - 如何在 meteor 中访问当前模板中的元素?

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:48 25 4
gpt4 key购买 nike

我有一个这样的模板,

<template name = "foo">
<p id="loading" >LOADING...</p>
<p> {{theResult}} </p>
</template>

这就是我创建 foos 的方式,

 // foos = [a, b, c, d]. With each button click I add a new item to the array
{{#each foos}}
{{> foo .}}
{{/each}}

foo 是如何工作的,

Template.foo.created = function(){
var name = Template.currentData();
api_call(name, function(err, result){
Session.set(name, result);
});
}

Template.foo.helpers({
'theResult': function(){
var name = Template.currentData();
if(Session.get(name)) {
$("#loading").hide();
return Session.get(name);
} else {
return "";
}
}
})

所以我的期望是当数据来自 api_call 时,隐藏“LOADING...”para,并在 theResult 中显示结果。

结果显示正确。我的问题是“正在加载...”仅隐藏在最顶部的 foo 上。不是其他的。

我该如何解决这个问题?

编辑:按照建议,而不是,

$("#loading").hide();

我用过

Template.instance().$("#loading").hide();

这也不起作用:)

最佳答案

我就是这样做的

模板...如果 theResult 未定义,则将渲染 else 路径。

<template name="foo">
{{#with theResult}}<p> {{this}} </p>
{{else}}<p id="loading" >LOADING...</p>
{{/with}}
</template>

Javascript...theResult 是一个简单的 Session.get 调用

Template.foo.helpers({
theResult: function(){
var name = Template.currentData();
return name && Session.get(name);
}
});

关于node.js - 如何在 meteor 中访问当前模板中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702037/

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