使用Backbone.js进行首次查看后,Google Map无法正确呈现

用户名

我用Phonegap,Backbone.js,Require.js和PageSlider(https://github.com/ccoenraets/PageSlider创建了一个移动应用程序

我想显示一个带有标记的简单Google Map。模板如下所示:

<div class='main-content' id='map-container'>

    <a href="geo:51.903679,-8.468274">
        <div id="map-canvas"></div>
    </a>

</div>

这是视图:

define(function (require) {

"use strict";

var $                   = require('jquery'),
    _                   = require('underscore'),
    Backbone            = require('backbone'),
    tpl                 = require('text!tpl/Map.html'),
    side_nav                = require('text!tpl/SideNav.html'),
    template = _.template(tpl),
    map, myLatlng, mapOptions, marker;


return Backbone.View.extend({

    initialize: function () {          
        this.render();      
    },

    initMap: function () {

         myLatlng = new google.maps.LatLng(51.903679, -8.468274);

         mapOptions = {
            center: myLatlng,
            zoom: 12,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

            map = new google.maps.Map(this.$el.find('#map-canvas')[0],
                                      mapOptions);


         marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
            title: 'Christians Brothers College Cork'
        });

    },

    render: function () {
        this.$el.html(template({side_nav:side_nav}));
        this.initMap();       
    },


});

});

是该应用程序的链接。当您单击“位置”时,地图将完美呈现。但是,当您导航到其他任何地方然后返回到位置时,在左上角只能看到一小部分地图。

我尝试做,这在这里建议

google.maps.event.trigger(map, 'resize').

但无济于事。有任何想法吗?

尼科斯

您的视图在未附加到DOM的节点上工作,因此如果没有大小,则Google Map不太喜欢这种情况PageSlider渲染功能发生后,是您的路由器通过确实添加了节点。这是您的困境的演示:http : //jsfiddle.net/3C7g3/

您有几种解决方法:

  • 将节点插入DOMgoogle.maps.event.trigger(map, 'resize') 调用(此位代码对应于您的地图路由器条目)

    // assuming you stored the map object in your view
    require(["app/views/Map"], function (Map) {
        var view = new Map();
        slider.slidePage(view.$el);
        google.maps.event.trigger(view.map, 'resize');
     });
    

    http://jsfiddle.net/3C7g3/1/

  • 在调用render之前将节点插入DOM。在您的情况下,这可能意味着要从中删除渲染view.initialize方法中调用view.renderafter container.append(page);slidePageFrom

    http://jsfiddle.net/3C7g3/2/

  • 一种更骇人听闻的方法是将元素临时添加到DOM,应用Google Maps,然后将其从DOM中删除

    initMap: function () {
        // assuming a temp class that hides the element. For example,
       // .temp {position: absolute; visibility:hidden; }
        this.$el.addClass('temp');
        $('body').append(this.$el);
        // ...
        this.$el.remove();
        this.$el.removeClass('temp');
    }
    

    http://jsfiddle.net/3C7g3/3/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Backbone.js进行首次查看后,Google Map无法正确呈现

来自分类Dev

Backbone.js无法正确呈现视图

来自分类Dev

标志性JS无法使用Ember正确呈现

来自分类Dev

PDF无法使用Firefox和pdf.js正确呈现

来自分类Dev

PDF无法使用Firefox和pdf.js正确呈现

来自分类Dev

Backbone.Marionette-视图无法正确呈现

来自分类Dev

Backbone.js-无法正确传递模型的属性以进行正确查看

来自分类Dev

使用Backbone进行多个异步ajax调用后呈现视图

来自分类Dev

如何使用Backbone.js正确设置CORS POST请求

来自分类Dev

动态添加第二个Google Map后无法正确呈现

来自分类Dev

动态添加第二个Google Map后无法正确呈现

来自分类Dev

React.js和Mapbox:使用react.js时,mapbox地图无法正确呈现

来自分类Dev

React.js和Mapbox:使用react.js时,mapbox地图无法正确呈现

来自分类Dev

Chrome无法使用<base href =“ /”>标记正确呈现Google图表(堆叠的条形图)

来自分类Dev

重新加载JSON无法使用Fabric.js在画布中正确呈现

来自分类Dev

使用const时代码无法正确呈现

来自分类Dev

Circle无法使用React Google Map的API在Google地图上呈现

来自分类Dev

使用Backbone.js将远程集合呈现到页面上

来自分类Dev

Google chrome无法正确呈现字体。

来自分类Dev

Google Chrome无法正确呈现网页

来自分类Dev

Google Chrome无法正确呈现网页

来自分类Dev

Google chrome无法正确呈现字体。

来自分类Dev

React.js无法正确呈现信息

来自分类Dev

页面无法正确呈现Angular js

来自分类Dev

无法使用Google Map API JS在Intel XDK中查看Google Map

来自分类Dev

使用Backbone.js的单页Web应用程序的设计正确吗?

来自分类Dev

如何查看和编辑无法正确呈现的PowerPoint演示文稿?

来自分类Dev

如何查看和编辑无法正确呈现的PowerPoint演示文稿?

来自分类Dev

Backbone.Marionette-显示方法无法正确呈现..出了点问题

Related 相关文章

  1. 1

    使用Backbone.js进行首次查看后,Google Map无法正确呈现

  2. 2

    Backbone.js无法正确呈现视图

  3. 3

    标志性JS无法使用Ember正确呈现

  4. 4

    PDF无法使用Firefox和pdf.js正确呈现

  5. 5

    PDF无法使用Firefox和pdf.js正确呈现

  6. 6

    Backbone.Marionette-视图无法正确呈现

  7. 7

    Backbone.js-无法正确传递模型的属性以进行正确查看

  8. 8

    使用Backbone进行多个异步ajax调用后呈现视图

  9. 9

    如何使用Backbone.js正确设置CORS POST请求

  10. 10

    动态添加第二个Google Map后无法正确呈现

  11. 11

    动态添加第二个Google Map后无法正确呈现

  12. 12

    React.js和Mapbox:使用react.js时,mapbox地图无法正确呈现

  13. 13

    React.js和Mapbox:使用react.js时,mapbox地图无法正确呈现

  14. 14

    Chrome无法使用<base href =“ /”>标记正确呈现Google图表(堆叠的条形图)

  15. 15

    重新加载JSON无法使用Fabric.js在画布中正确呈现

  16. 16

    使用const时代码无法正确呈现

  17. 17

    Circle无法使用React Google Map的API在Google地图上呈现

  18. 18

    使用Backbone.js将远程集合呈现到页面上

  19. 19

    Google chrome无法正确呈现字体。

  20. 20

    Google Chrome无法正确呈现网页

  21. 21

    Google Chrome无法正确呈现网页

  22. 22

    Google chrome无法正确呈现字体。

  23. 23

    React.js无法正确呈现信息

  24. 24

    页面无法正确呈现Angular js

  25. 25

    无法使用Google Map API JS在Intel XDK中查看Google Map

  26. 26

    使用Backbone.js的单页Web应用程序的设计正确吗?

  27. 27

    如何查看和编辑无法正确呈现的PowerPoint演示文稿?

  28. 28

    如何查看和编辑无法正确呈现的PowerPoint演示文稿?

  29. 29

    Backbone.Marionette-显示方法无法正确呈现..出了点问题

热门标签

归档