我刚刚开始学习meteor,我想知道在meteor中实现MDI(多文档界面)UI的正确方法是什么,就像jQuery Window插件(http://fstoke.me/jquery/window/)提供的那样。
我最初的想法是拥有一个存储在Session中的Window对象数组,然后让模板循环遍历窗口列表,并相应地渲染它们。
然而,这意味着无论何时用户打开或关闭窗口,我都必须使用修改后的数组调用Session.set(),这样可以完全重新呈现整个UI,从而可能使用户松开他当前的工作状态(除非为使用的表单元素动态生成唯一ID)。
此外,用户界面还支持拖放功能。删除和调整大小,这将导致更新Window对象,但更新Window对象将不会触发反应式渲染,除非我再次使用windows数组调用Session.set,这将导致另一个重新呈现整个UI。
这样做的正确方法是什么?这样重新渲染可能只限于创建/关闭/调整的窗口?
感谢您的帮助。
答案 0 :(得分:0)
我会创建一个名为Windows
的“暂存器”集合:
Windows = new Meteor.Collection(null)
然后,您可以存储窗口大小,位置等。在此集合中,它不会同步到服务器。
或者,您可以将窗口排列存储为Mongo中用户对象的一部分,这意味着窗口排列将在会话之间保持(并且所有浏览器选项卡将共享相同的窗口排列)。