【问题标题】:Meteorjs - Passing data context to Template Rendered function?Meteorjs - 将数据上下文传递给模板渲染函数?
【发布时间】:2015-10-12 01:38:25
【问题描述】:

我有这些数据上下文,我想使用 JQuery 根据值设置标签中的选定值。

我在将帮助程序的返回数据传递到 Template.Rendered 函数时遇到问题。

有什么办法吗?

帮手

Template.studentSetting.helpers({
  values: function(){
    return Basics.findOne({userId:Meteor.userId()});
  }
});

渲染函数

Template.studentSetting.rendered = function(){
 //I want to use the "values" helper data here and perform some jquery code based on that?? 
}

【问题讨论】:

    标签: meteor meteorite meteor-helper


    【解决方案1】:

    根据this post,我建议按照 mpowaga 在线程中的建议进行操作,只需在外部定义助手:

    var valuesFunc = function () {
      return Basics.findOne({userId:Meteor.userId()});
    };
    
    Template.studentSetting.helpers({
      values: valuesFunc
    });
    
    Template.studentSetting.onRendered(function(){
      var values = valuesFunc();
    });
    

    【讨论】:

    • 我怎样才能得到里面的值?
    • 只需分配函数返回的内容:var values = this.__helpers.get('values').call();
    • 来自 Tracker afterFlush 函数的异常:debug.js:41 TypeError: Cannot read property 'get' of undefined at null. (setting.js?8333356b073416c5904ab107eb6ae043b760b98a:64) at template.js:116在 Function.Template._withTemplateInstanceFunc (template.js:437) at fireCallbacks (template.js:112) at null. (template.js:205) at view.js:104 at Object.Blaze._withCurrentView (view. js:523) 在 vi​​ew.js:103 在 Object.Tracker._runFlush (tracker.js:468) 在 onGlobalMessage (setimediate.js:102)
    • 是的,我也一样.. :(
    • 我猜第一个解决方案不起作用。只需选择@BraveKenny 建议的第二个解决方案:您定义一个函数 outside 您的 Rendered 函数(在文件的开头),然后在 Rendered 函数和您的函数中调用它帮手。
    【解决方案2】:

    您需要使用如下参数调用 studentSettings 模板:

    {{> studentSettings inheritedValues=values}}
    

    然后您可以像这样将它访问到您的 Rendered 函数中:

    Template.studentSetting.rendered = function(){
     var values = this.data.inheritedValues;
     console.table(values);
    }
    

    【讨论】:

    • 显然,OP 想从它自己的 rendered 钩子中调用 Template.studentSetting 助手,而不是它的父模板的助手
    • 无论如何我都需要获取该文档中的值
    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 2017-02-08
    • 1970-01-01
    • 2023-02-13
    • 2023-03-22
    • 1970-01-01
    • 2016-03-18
    • 2014-08-04
    相关资源
    最近更新 更多