来自客户端阵列/集合的反应性UI

时间:2013-03-01 05:50:28

标签: meteor

我刚刚开始学习meteor,我想知道在meteor中实现MDI(多文档界面)UI的正确方法是什么,就像jQuery Window插件(http://fstoke.me/jquery/window/)提供的那样。

我最初的想法是拥有一个存储在Session中的Window对象数组,然后让模板循环遍历窗口列表,并相应地渲染它们。

然而,这意味着无论何时用户打开或关闭窗口,我都必须使用修改后的数组调用Session.set(),这样可以完全重新呈现整个UI,从而可能使用户松开他当前的工作状态(除非为使用的表单元素动态生成唯一ID)。

此外,用户界面还支持拖放功能。删除和调整大小,这将导致更新Window对象,但更新Window对象将不会触发反应式渲染,除非我再次使用windows数组调用Session.set,这将导致另一个重新呈现整个UI。

这样做的正确方法是什么?这样重新渲染可能只限于创建/关闭/调整的窗口?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我会创建一个名为Windows的“暂存器”集合:

Windows = new Meteor.Collection(null)

然后,您可以存储窗口大小,位置等。在此集合中,它不会同步到服务器。

或者,您可以将窗口排列存储为Mongo中用户对象的一部分,这意味着窗口排列将在会话之间保持(并且所有浏览器选项卡将共享相同的窗口排列)。