我有一个谷歌地图API v3应用程序,用于流星,我目前正在处理。当一个人点击一个标记时,它会显示一个infoWindow,其中包含一些窗口创建时静态内容。
我想要做的是使用反应式模板来呈现infoWindow的内容,可以直接作为可以更改的HTML,也可以通过引用反应性更新的dom元素。
我已经验证过,如果我使用infoWindow引用DOM元素,并且该元素的内容发生了更改,则Maps API会正确更新屏幕窗口。但是,我遇到两个问题:
(1)关闭窗口会破坏DOM元素,因此必须重新创建。这可能很容易处理"如果它存在更新它,否则创建它,插入它并更新它"处理。 (2)UI.render似乎不是动态的,所以创建,插入和更新它比想象的要难。
我仍然是一名中级流星黑客,所以请原谅我,如果我对自己造成太大的压力。
答案 0 :(得分:0)
对于#1,制作一个克隆:content: $('.stats').clone()[0]
对于#2,您需要创建依赖项。文档很好地解释了它&在不了解您的反应数据源催化剂的情况下,我无法提供更多帮助(我认为它是示例中的Session var)。哦,如果它基于集合中的新条目,请查看.observe()
函数。
Template.name.created = function() {
Session.set('stats',10);
statsDep = new Deps.Dependency();
};
statsDep.depend();
var dropWindow = new google.maps.InfoWindow({
content: $('.stats').clone()[0]
});
statsDep.changed();