【问题标题】:Meteor: How to point a template prototype at another template?Meteor:如何将模板原型指向另一个模板?
【发布时间】:2016-04-25 05:16:26
【问题描述】:

我有一种感觉,必须可以从一个模板指向另一个模板助手。有谁知道怎么做?

我在控制台中看到我可以访问我想要的模板:即 Template.Users_edit_page。

看起来有一个 __helpers 对象,其中定义了所有模板 (Template.Users_edit_page.__helpers)。

我该如何做一些事情:

Template.User_form.prototype.helpers = Template.Users_edit_page.helpers__

然后理想情况下,从 User_form 模板(它是 Users_edit_page 的子模板)调用的任何帮助程序都将运行 Users_edit_page 模板帮助程序

【问题讨论】:

    标签: meteor


    【解决方案1】:

    虽然我完全鼓励深入研究框架的内部结构以更好地了解它在做什么,但直接链接到这样的实现细节(例如*.__helpers)通常不是一个好主意,因为框架开发人员可能会更改实现细节破坏你的代码。

    当您使用公共 API 时,您可以期待更少的重大更改,并在此之前提前通知(例如,标记为未来弃用的 API)。

    正如我在您的另一个问题中提到的,跨模板共享帮助程序的最灵活方法是使用 Template.registerHelper

    但是,如果您需要更有针对性的东西,您可以将您的函数定义为独立的 javascript 函数:

    passwordSecure = function(password) {
      return password.length > 8;
    };
    validEmail = function(email) {
      return email.contains('@');
    };
    

    然后将它们作为助手包含在您希望它们包含的所有模板中,如下所示:

    Template.User_form.helpers({
      'passwordSecure': passwordSecure,
      'validEmail':  validEmail, 
    });
    

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      相关资源
      最近更新 更多