【问题标题】:Template Rendered callback in Meteor 0.8.0 blazeMeteor 0.8.0 blaze 中的模板渲染回调
【发布时间】:2014-05-09 05:22:18
【问题描述】:

随着这次更新和新模板引擎 Blaze 的推出,我遇到了一些问题,更具体地说是模板渲染回调。

类似于template.my_template.rendered 的方法似乎不再适合我。当我尝试登录 (this._id) 时给我 undefined 并且其中的任何内容实际上都不起作用。

我在 blaze 的介绍中读到 Meteor.render 已被删除。这两者有什么共同点吗?如果已更改,执行此操作的更新语法是什么?

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    如果您在模板呈现的回调中使用this._id,请立即尝试使用this.data._id。我有点不确定为什么 this._id 之前在渲染回调中为你工作。

    如果它是您的助手而不是您渲染的回调,它将保持为this._id,但是根据您的模板是否在另一个模板中,一些规则已经改变。

    migration guide 可以帮助您构建 blaze 模板。您也可以在此处发帖,但鉴于您提供的详细信息,没有足够的信息来确定真正的问题是什么。

    Meteor.render 已弃用。有一个新的 UI.render 命名空间 (http://docs.meteor.com/#ui) 可以做类似的事情。这取决于你想做什么,但 UI.insertWithData 可能会做类似的事情。

    查看 Meteor.render 上的迁移文档:https://github.com/meteor/meteor/wiki/Using-Blaze#meteorrender-has-been-removed

    【讨论】:

    • 读取后渲染的回调与 Meteor.render 不同。问题是渲染的回调现在只调用一次。
    • @user1952811 是的,渲染的回调现在只触发一次。这是因为 Blaze 通过 DOM 修补工作。它不应该多次开火。当 DOM 发生变化时,当需要渲染回调来重新初始化任何 Jquery 组件时,它不应该像 Spark 那样破坏任何东西
    • 我现在应该如何以一种好的和自动的方式进行更新?我看到其他没有答案的问题
    • @user1952811 我可以在这里为您提供帮助。请用您的确切问题更新问题,以便我可以重现它。如果是在发生变化时做某事,你可以使用 Deps.autorun 代替。
    猜你喜欢
    • 2014-05-12
    • 2016-04-30
    • 2016-03-10
    • 2014-09-22
    • 2017-11-16
    • 2014-05-12
    • 1970-01-01
    • 2015-05-09
    • 2014-12-08
    相关资源
    最近更新 更多