Meteor 0.8.0 Blaze中的模板渲染回调函数

3

随着这个更新和新的模板引擎Blaze的介绍,我遇到了一些问题,更具体地说是与模板渲染回调有关。

template.my_template.rendered这样的回调对我不再起作用。当我尝试记录(this._id)时,它会给我undefined,并且其中的任何内容都无法正常工作。

我在介绍中读到Meteor.render已被删除。这两者有什么共同点?如果已更改,请问更新语法是什么?

1个回答

0

如果你在模板渲染的回调函数中使用了this._id,现在尝试使用this.data._id替代。我有点不确定为什么之前this._id在渲染回调中能工作。

如果是你的helper而非渲染回调函数,那么它仍然保持为this._id,然而一些规则根据你的模板是否在另一个模板内改变了。

有一个迁移指南可以帮助你为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
@user1952811 是的,现在渲染回调只会触发一次。这是因为Blaze通过DOM修补工作。它不应该需要多次触发。当DOM更改时,它不应该像Spark那样破坏任何东西,例如需要重新初始化任何Jquery组件的渲染回调。 - Tarang
现在我应该如何进行良好且自动化的更新?我看到其他没有答案的问题。 - user1952811
@user1952811 我可以在这里帮助你。请更新问题并描述您的确切问题,以便我可以重现它。如果涉及到当某些东西发生变化时需要执行某些操作,您可以使用Deps.autorun。 - Tarang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接