在Chrome和Firefox中打印预览后,传单被破坏

时间:2014-07-30 15:51:58

标签: javascript angularjs printing leaflet

这仅适用于 Chrome FireFox

我有角度项目,使用传单显示地图。工作流程很简单:

  1. 显示地图
  2. 隐藏地图并显示其他信息
  3. 选择打印(带来'打印预览')
  4. 再次显示地图 - 它将被破坏
  5. 这里的jsFiddle exmaple:http://jsfiddle.net/fRe3f/

    no code needed

    如果这有助于某人(在Chrome中测试): 我附上一堆事件来看看地图会发生什么(http://jsfiddle.net/cxZRM/)。

    (缩放/移动地图时,我看到按顺序触发moveStart,move,moveEnd事件。)

    当地图可见并且您打印时,没有事件触发(传单不会被破坏)。当地图不可见并且您打印时,没有记录moveStart事件,那么只触发move和moveEnd。此外,查看调用堆栈的move事件中的断点显示leafLet正在调用invalidateSize方法)。

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您只是重新调整浏览器大小,它将自动修复:-)但这不是修复

我能够在我的逻辑中合并调用invalidateSize()(https://github.com/Leaflet/Leaflet/issues/2826)来修复地图(实际上,我必须使用setTimeout调用(function(){map.invalidateSize();}, 100) - 我认为角度是“窒息”了一点,因为角度我需要setTimeout。

希望这有助于某人...