gpt4 book ai didi

javascript - MeteorJS 从前一个函数中检索 JS 中的结果?

转载 作者:行者123 更新时间:2023-12-03 07:01:28 26 4
gpt4 key购买 nike

使用 Meteor,我希望能够检索给定模板的结果(在本例中为 location)并将其用作另一个 JS 操作中的变量。这个的具体应用是针对API的。

Template.myTemplate.onCreated(function(){
this.location = new ReactiveVar();
var self = this;
$.getJSON('http://ip-api.com/json/?callback=?', function(lingo) {
self.location.set(lingo.zip + ", " + lingo.city);
});
});

Template.myTemplate.helpers({
location: function(){
return Template.instance().location.get();}
});

使用上面的代码,我在 HTML 中指定的 {{location}} 区域得到响应。现在,我想使用 {{location}} 值,将其转换为字符串,并将其用作名为 cheddar 的变量。例如:

Template.anotherTemplate.onCreated(function(){
this.zangrief = new ReactiveVar();
var self = this;
var cheddar = Template.instance().location.get();
$.getJSON('http://www.anotherapi'+cheddar+'myapikey', function(red) {
self.zangrief.set(red.stuff);
});
});

这样做的目的是使用 API #1 获取我的位置,并使用它在 API #2 中获取相关数据。在此示例中,我使用 var cheddar 中的返回帮助程序代码来检索第一个模板 {{location}} 中的响应。这是行不通的,所以我想知道如何处理这样的事情。

最佳答案

如果是在客户端,那么你可以尝试以常规 JS 方式赋值 var myvar = XXX;然后应该可以通过 window.myvar 在其他模板中访问它

//begining of the file
var myvar;

//template 1
Template.myTemplate.helpers({
location: function(){
myvar = Template.instance().location.get()
return Template.instance().location.get();}
});
//template 2
Template.anotherTemplate.onCreated(function(){
this.zangrief = new ReactiveVar();
var self = this;
var cheddar = window.myvar
//etc

检查docs on namespaces还有这篇文章:What is the variable scope in Meteor client side?

关于javascript - MeteorJS 从前一个函数中检索 JS 中的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039162/

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