Blaze.getData()和Template.currentData()之间的区别以及每个用例的用例

时间:2016-07-17 05:14:03

标签: meteor meteor-blaze

我尝试使用Template.onRendered下的Blaze.getData()和Template.currentData(),这给了我相同的结果。任何人都可以帮我解释用例之间的差异。我查看了解释

的Meteor Docs

Template.currentData()

  • 在onCreated,onRendered或onDestroyed回调中,返回模板的数据上下文。
  • 建立对结果的反应依赖。

Blaze.getData([elementOrView]):

  • 返回当前数据上下文,或从Meteor模板呈现特定DOM元素或视图时使用的数据上下文。

这也是Establishes a reactive dependency on the result

Template.currentData的含义

1 个答案:

答案 0 :(得分:0)

Template.currentData()可以获取onCreated,onRendered或onDestroyed中给定模板的当前数据。

记住你正在创建模板实例,因此同一个模板可能有不同的数据,但是它的实例不同。

在给定的实例中,在Helpers下,您可以获得this上下文下的数据。在onCreated,onRendered中,这是一个级别,而this.data是数据。

currentData表示它是创建/渲染等时的数据...但数据可以更改:如果您的模板从#each循环获取数据,例如,它本身来自集合,很可能数据首先是未定义的,然后填充值,并在订阅接收数据时进行更改。

currentData使这个被动,这意味着当新数据到来时结果将被更新。

Blaze.getData([elementOrView])用于从元素或视图中获取数据上下文,即不一定在模板中。它可以是DOM元素或Blaze.View

这意味着此函数可以让您在事实之后计算元素呈现时的数据上下文。也许从另一个模板助手或事件中检查元素是否包含期望值。