gpt4 book ai didi

javascript - 是否可以访问使用 Blaze.render() 加载的模板的父数据上下文?

转载 作者:行者123 更新时间:2023-12-04 19:42:38 25 4
gpt4 key购买 nike

我使用 Blaze.render() 在引导箱中加载模板或 Blaze.renderWithData() :

Blaze.renderWithData(Template.myTemplate, 
{"arg1":false, "arg2":"blabla"},
$("#dialogAnchor")[0]);

虽然通常可以使用 Template.parentData() 直接访问父数据上下文。在加载有空格键的模板中(例如 {{> myTemplate}} ),使用 Blaze.render() 时不可能这样做或 Blaze.renderWithData()
有没有办法做到这一点?

最佳答案

我现在对这个问题很熟悉了,因为没有人回答,所以我是这样处理的:

首先,使用 Blaze.render() 添加到页面的模板或 Blaze.renderWithData()将没有 Template.parentData()语境。

作为一种解决方法,仍然可以将其作为参数传递,如下所示:

Blaze.renderWithData(Template.myTemplate, {parentDataContext: Template.currentData()})

但是,请注意 它不会 react .

如果您需要 react 性,还有另一种解决方法。您可以将要共享的上下文元素存储在 ReactiveDict() 中。 (不是 ReactiveVar() )并将其也作为参数传递:
Template.myTemplate.rendered = function(){
this.dataContext = new ReactiveDict()
this.dataContext.set("contextVariable1", this.data.whatever)
this.dataContext.set("contextVariable2", this.data.ImAwesome)
// etc.
Blaze.renderWithData(Template.myTemplate, {parentDataContext: this.dataContext})
}

这样,您可以在父模板和使用 Blaze.render() 加载的子模板之间共享响应式(Reactive)本地上下文。或 Blaze.renderWithData() .

关于javascript - 是否可以访问使用 Blaze.render() 加载的模板的父数据上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32331933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com