0
我試圖在onRendered回調中設置一個變量,該變量等於來自active
全局幫助程序的值。我的全球助手定義如下:我可以使用全局幫助器將數據傳遞給onRendered?
客戶端/ 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;
但我無法弄清楚如何從邏輯在active
幫手產生的價值。我認爲這將是var valuationActive = active();
,但返回not defined
。我也看到this answer,但它似乎是在模板JS中創建函數,而不是引用助手。
我確定這是我如何調用函數的一個基本錯誤。謝謝。
撤消以前的評論,因爲我開始看到的數據來通過與'UI._globalHelpers',只需要解決我如何傳遞參數,這一點我敢肯定去你的第二點。非常感謝。 – Bren
@Bren改爲使用Blaze._globalHelpers。 'UI'已被棄用。 – ffxsam
用戶界面取代了以前不贊成使用的東西。雖然沒有記載'Blaze._globalHelpers'和'UI._globalHelpers'。如果在任何地方宣佈這個變化,那麼這個變化在哪 –