Javascript 我可以使用全局帮助器将数据传递到onRendered吗?

Javascript 我可以使用全局帮助器将数据传递到onRendered吗?,javascript,meteor,Javascript,Meteor,我试图在onRendered回调中设置一个变量,该变量等于活动全局帮助器的值。我的全局助手定义如下: client/lib/helpers.js //all possible calculations// getResults = function(valuationId,targetId){ var valuation = Valuations.findOne({_id: valuationId}); var targetTicker = Companies.findOne({

我试图在onRendered回调中设置一个变量,该变量等于活动全局帮助器的值。我的全局助手定义如下:

client/lib/helpers.js

//all possible calculations//
getResults = function(valuationId,targetId){
    var valuation = Valuations.findOne({_id: valuationId});
    var targetTicker = Companies.findOne({_id:targetId}).ticker;
    var targetData = CompaniesData.findOne({ticker: targetTicker});
    return {
        peFy1: targetData.epsFy1 * valuation.priceEarningsFy1,
        peFy2: targetData.epsFy2 * valuation.priceEarningsFy2
        //more//
    }
};

//choose one value from above, based on several other variables//
Template.registerHelper('active',function(){
    var valuationId = this._id;
    var targetId = this.targetId;
    var valuationPeriod = this.valuationPeriod;
        switch (valuationPeriod) {
            case "FY1"
                return getResults(valuationId, targetId).peFy1;
                break;
            case "FY2":
                return getResults(valuationId, targetId).peFy2;
                break;
        //more cases//
我可以直接从下面最后一行的getResults中获取并使用单个值

Template.ValuationBase.onRendered (function () {
    var targetId = Template.parentData(0).targetId;
    var valuationId = Template.parentData(0)._id;
    var valuationActive = getResults(valuationId,targetId).peFy1;
但是我不知道如何从活动助手的逻辑中得到值。我认为这将是var估值活跃=活跃;但这还没有定义。我也看到了,但它似乎是在模板JS中创建函数,而不是引用助手

我确信这是我调用函数时的一个基本错误。谢谢。

使用Blaze.\u globalHelpers.active来指代您的全局帮助程序,该全局帮助程序在客户端的任意位置从javascript激活

我想再次补充一点,依靠它为您的全局助手传递数据上下文是有风险的。您假设无论发生什么情况,上下文总是正确设置的。您可以通过以下方式为自己辩护:

Template.registerHelper('active',function(id){
  var valuationId = id || this._id; // use the arg if provided, otherwise rely on 'this'
  ...
});

收回了前面的评论,因为我开始看到UI中的数据。\u globalHelpers,只需要修复我传递参数的方式,我肯定会转到第二点。非常感谢。@Bren使用Blaze.\u globalHelpers代替。UI已弃用。UI替换了先前弃用的内容。Blaze.\u globalHelpers和UI.\u globalHelpers都没有文档记录。这一变化是在哪里宣布的?