我可以使用全局助手传递数据到onrender
Can I use a global helper to pass data into onRendered?
我试图在onrender回调中设置一个变量,等于active
全局helper的值。我的全局帮助器定义如下:
客户端/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
。我也看到了这个答案,但它似乎是在模板JS中创建函数,而不是引用一个助手。
我确信这是我如何调用函数的一个基本错误。谢谢你。
使用Blaze._globalHelpers.active()
从javascript在客户端的任何地方引用您的全局助手active
。
我要补充(再次),依靠this
为您的全局帮助器传递数据上下文是有风险的。你假设上下文无论如何都会被正确设置。你可以这样为自己辩护:
Template.registerHelper('active',function(id){
var valuationId = id || this._id; // use the arg if provided, otherwise rely on 'this'
...
});
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 有时数据是't显示在浏览器中
- React中的数据集表示
- Angular只从数组中获取所需的数据
- 序列化数据和 onRender in Marionette.CompositeView 之间的区别
- 我可以使用全局助手传递数据到onrender