我正在开发一个从 Facebook 获取数据的 Meteor 应用程序,我想使用 jquery-layout 进行演示。我怀疑在尝试使用 jquery 修改响应式模板中的 HTML 时可能会有一些“微妙之处”,所以我设置了一个相对简单的测试用例,类似于这样(为了简洁起见)......
<body>
{{> mainTemplate}}
</body>
<template name="mainTemplate">
{{#with userInfo}}
{{> partialNorth}}
{{> partialWest}}
{{> partialCenter}}
{{> partialEast}}
{{/with}}
{{layItOut}}
</template>
Template.mainTemplate.userInfo 返回 Session 变量的内容,该变量以默认值开头,并使用来自 Facebook 的信息异步更新。
Template.mainTemplate.layItOut 使用回调 fcn 设置对 Meteor.defer 的调用,该回调 fcn 实际执行 5 行 jquery-layout 代码。
这似乎工作得很好......
初始显示符合预期/预期(尽管有一段短暂的时间没有布置页面)
对响应式上下文的任何更新都会导致重新执行布局(再次,w/brief-but-visible re-layout)
那么,我为什么要发牢骚呢?大多数情况下,我想找到一种更简洁的方法来消除明显的重新布局活动。
我可以使反应式上下文更加细化,但我不确定这是否真的有帮助。
或者,我想我可以尝试直接控制渲染(例如,通过 Meteor.ui.render() ,但这听起来需要做很多工作 ;-)
我想我真正想要的是
a) 一种挂钩 Meteor 渲染事件的方法
或者更好
b) 一种将查询布局连接到模板的更简洁的方法
想法?