从Template.helpers访问Template.TemplateName.helpers,反之亦然

时间:2014-11-15 02:27:54

标签: meteor iron-router meteor-blaze spacebars meteor-helper

有没有办法从全局帮助器获取对Template实例的访问权限,反之亦然?

/lib/route.js(使用铁路由器):

Router.route('/', {name: 'home.view', controller: 'homeController'});
homeController = RouteController.extend({
    template: 'home',
    waitOn: function () {
      Meteor.subscribe("Person", Meteor.userId());
    },
    data: function () {
        // return some data;
    }
});

homeController.helpers({
   templateInstanceHelper: function () {
      // Access a "global" helper here
   }
});

/client/helpers.js:

Template.helpers("globalHelper", function () {
   // Access the template instance helper here
});

1 个答案:

答案 0 :(得分:0)

您是否考虑过定义全局方法?而不是注册Meteor模板,只需将其定义为

globalHelperFunc = function(templateVar) {
   // do work
}

请注意,这需要在“lib”文件夹中,所以也许(/lib/helpers.js)

参考:Global function for Meteor template helper