有没有一种干净的方法来获取当前模板的父模板?在Meteor的API中没有任何官方文档。我说的是Blaze.TemplateInstance
,而不是上下文(即不是Template.parentData
)。
发布于 2015-01-15 19:45:55
最后,我用流星的parentData
类似地扩展了模板实例,如下所示:
/**
* Get the parent template instance
* @param {Number} [levels] How many levels to go up. Default is 1
* @returns {Blaze.TemplateInstance}
*/
Blaze.TemplateInstance.prototype.parentTemplate = function (levels) {
var view = this.view;
if (typeof levels === "undefined") {
levels = 1;
}
while (view) {
if (view.name.substring(0, 9) === "Template." && !(levels--)) {
return view.templateInstance();
}
view = view.parentView;
}
};
示例用法:someTemplate.parentTemplate()
获取直接父级
发布于 2017-03-03 06:27:24
如果您不想扩展Blaze.TemplateInstance
,可以像这样访问父实例:
Template.exampleTemplate.onRendered(function () {
const instance = this;
const parentInstance = instance.view.parentView.templateInstance();
});
仅在Meteor 1.4.x中测试
发布于 2018-03-15 06:03:48
您可以使用像Aldeed's template-extension这样的包
在那里可以使用以下方法:
templateInstance.parent(numLevels, includeBlockHelpers)
https://stackoverflow.com/questions/27949407
复制相似问题