我正在尝试通过Blaze渲染一个模板。所以通常我会打电话给
Blaze.render(Template.xxx,$("#parentnode")[0]);它工作得很好。
现在我想在模板xxx中区分是谁渲染了它。所以我想把一个变量传递给模板,我可以用它来决定是谁。我试过了
Blaze.renderWithData(Template.xxx,{test:"value"},$("#parentnode")[0]);,然后尝试访问
Template.xxx.onRendered(function(){console.log(this.test)});其记录了"this.test is not defined blabla“。如何正确传递和访问数据?
谢谢你的回答,祝你有一个好的答案!
发布于 2015-12-05 20:56:15
根据meteor docs的说法,不可能在onRendered回调中访问上下文对象。this关键字引用模板实例,不包含任何有状态数据。您可以做的是在DOM节点内呈现数据属性(如果不想显示,则在隐藏元素中)。您可以从onRendered函数访问DOM。
发布于 2016-01-08 07:01:58
在呈现模板时,Template.currentData()是可用的,所以尝试使用Template.currentData()而不是这个,它应该可以工作:
Template.xxx.rendered = function() {
var _this = Template.currentData();
console.log(_this.test)
};https://stackoverflow.com/questions/34103958
复制相似问题