【发布时间】:2015-10-30 20:52:14
【问题描述】:
我正在尝试使用 Meteor 从 yahoo Finance 输出股票信息。它以前工作过,但我已经离开这个项目一段时间了。我已经更新了流星,所以我想在更新过程中可能有一些东西被破坏了。这是我正在使用的包。 https://atmospherejs.com/ajbarry/yahoo-finance
我已成功从 yahoo 获取数据,但它似乎没有传递到会话中,并且我无法在模板中输出对象数据。
这是我的客户端 javascript 代码。
Template.stock.rendered = function (){
// if ( _.isEmpty(Session.get('ENW.V')) ) {
Meteor.call('getQuote', 'ENW.V', function(err, result) {
Session.set('ENW.V', result['ENW.V']);
console.log(result);
});
// }
if ( _.isEmpty(Session.get('E4U.F')) ) {
Meteor.call('getQuote', 'E4U.F', function(err, result) {
Session.set('E4U.F', result['E4U.F']);
console.log(result);
});
}
};
Template.stock.helpers({
stock: function() {
return Session.get('ENW.V');
},
stock2: function() {
return Session.get('E4U.F');
}
});
这是常用的 html 模板
<template name="stock">
<div class="container">
{{> header}}
</div>
{{>investorsSubNav}}
{{> sidebar}}
<div class="investorsWrap">
<div class="investorsBody">
<section class="stockBodyHero">
<div class="stockLeft">
<div class="stockCenter">
<h2>Enwave Corporation TSX</h2>
<ul>
<li><strong>Symbol</strong>{{stock.symbol}}</li>
<li><strong>Market Cap</strong> $ {{stock.marketCapitalization}}</li>
<li><strong>Average Daily Volume</strong> $ {{stock.averageDailyVolume}}</li>
<li><strong>52 Week Low</strong> $ {{stock.[52WeekLow]}}</li>
<li><strong>52 Week High</strong> $ {{stock.[52WeekHigh]}}</li>
<li><strong>Change</strong> {{stock.change}}</li>
</ul>
</div>
</div>
<div class="stockRight">
<div class="stockCenter">
<h2>Enwave Corporation FSE</h2>
<ul>
<li><strong>Symbol</strong> {{stock2.symbol}} </li>
<li><strong>Market Cap</strong> $ {{stock2.marketCapitalization}}</li>
<li><strong>Average Daily Volume</strong> $ {{stock2.averageDailyVolume}}</li>
<li><strong>52 Week Low</strong> $ {{stock2.[52WeekLow]}}</li>
<li><strong>52 Week High</strong> $ {{stock2.[52WeekHigh]}}</li>
</ul>
</div>
</div>
</section>
</div>
</div>
</template>
这是服务器端方法
Meteor.methods({
getQuote: function( stockname ) {
return YahooFinance.snapshot({symbols: [stockname] , fields:['n','a','b','j1','a2','k','j','c1'] });
}
});
【问题讨论】:
-
你可以试试
$ meteor add ejson- 这是一个以前的标准包,默认情况下不在 1.2 中。这可能与您的对象没有进入 Session 变量有关。 -
我之前已经安装了ejson。当我再次运行流星更新时,这在终端中返回
babrahams:editable-json 0.4.3 (0.6.1 is available) -
我不熟悉那个包。您可以在设置会话变量后立即对其进行控制台记录吗?
-
不幸的是我不能。他们返回未定义。所以我知道这就是问题所在。但不知道具体是什么原因?
标签: javascript session meteor helper yahoo-finance