我有一个看起来像这样的模板:
<template name="foo">
<div id="wrapper" style="overflow: hidden">
<div id="content" style="margin-top: -{{contentHeight}}px">
{{content}}
</div>
<button id="toggle">Show/Hide Content</button>
</div>
</template>
其中{{contentHeight}}
是计算#content
高度的助手,点击切换按钮会导致#content
通过设置其边距动画来上下滑动。
问题在于,当我在foo
上进行数据库更新时,#content
的{{1}}属性会重置为新的style
值,并将其隐藏。我不希望Meteor在渲染后触摸元素,但即使给它一个唯一的ID也无法阻止它;正如文档所说:
Meteor将保留[具有唯一名称/ ID的元素],即使它们的封闭模板已被重新呈现,但仍会更新其子项并复制任何属性更改。
(强调我的。)那么最好的方法是什么?如何在渲染模板时设置元素的contentHeight
,然后阻止Meteor修改属性?
答案 0 :(得分:0)
你有没有试过像:
<div id="content" {{contentHeightStyle}}>
Template.foo.contentHeightStyle = function() {
if (!this._contentHeightStyleCalculated) {
this._contentHeightStyleCalculated = true;
return 'style="..."';
}
}