从包中扩展/覆盖 Meteor blaze 模板

Extend / override Meteor blaze template from packages

我使用 useraccounts:ionic 包,我想在其中一个模板的开头添加一行。

我知道我可以从 GitHub 获取 repo,然后在我的项目中使用它,但我宁愿通过 "meteor add" 继续使用它。

是否可以更改或"override" 个别模板?

您有几个选择:

  • 查看 'aldeed:template-extension' 包;它导出一个 'replaces(templateName)' 方法来做你想做的事。
  • 像这样实现您自己的覆盖方法:

    //
    // Helper shim to override template renderFunctions
    // Inspired by replaces() from aldeed:template-extension package. Good stuff.
    Template.prototype._override = function (replacement){
        if (typeof replacement === 'string') {
            replacement = Template[replacement];
        }
        if (replacement && replacement instanceof Blaze.Template ) {
            this.renderFunction = replacement.renderFunction;
        }
    }
    
    ...
    
    Template.someTemplateILike._override('myReplacementTemplate');
    

-- 科比