2013-08-23 38 views
0

我有一个简单的电梯“应用程序”,试图静态显示一个OpenLayers地图,预计有彗星动态地添加标记到基于某些服务器端逻辑的地图。无论如何,仅仅显示地图就证明是一项艰巨的任务。电梯与OpenLayers计时

的HTML如下:

<!DOCTYPE html> 
<html> 
<head> 
<title>Test</title> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="description" content=""> 
<meta name="viewport" content="width=device-width"> 

<link rel="stylesheet" href="css/bootstrap.min.css"> 
<link rel="stylesheet" href="css/bootstrap-responsive.min.css"> 
<link rel="stylesheet" href="css/main.css"> 

<script src="js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script> 
<script src="http://www.openlayers.org/api/OpenLayers.js"></script> 
<script> 
    function init() { 
    map = new OpenLayers.Map("mainMap"); 
    var mapnik   = new OpenLayers.Layer.OSM(); 
    var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984 
    var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection 
    var position  = new OpenLayers.LonLat(-76.6778,39.2652).transform(fromProjection, toProjection); 
    var zoom   = 9; 

    map.addLayer(mapnik); 
    map.setCenter(position, zoom); 
    } 
</script> 
</head> 


<body class="lift:content_id=main" onload="init();"> 
<div id="main" class="lift:surround?with=bootstrap;at=content"> 
     <div id="mainMap"> </div> 
    </div> 
</body> 
</html> 

我明明有在升降机生成的头和身体的元素从解禁后的未来困难的时候理解:环绕已经发挥了奇效。虽然静态HTML看起来很好,但相关的脚本元素已经消失,似乎无法调用init()以使地图显示。

我是否必须以某种方式覆盖环绕snippit,完全避免使用它,或者构建snippit中的所有init()javascript,然后以某种方式调用它?或者是其他东西?我是一个电梯新手,所以请忍受我,如果我在基地;

我试着另一件事是在我用来包围bootstrap.html文件中添加相关的头/脚本HTML代码发布的页面,并没有让我想要成为我的地方。

编辑:有一个(通常)缓存问题,它阻止我看到指定给lift的bootstrap.html文件的更改:suround snippit。这确实有用。

+1

你有没有尝试使用'电梯内的''标签:surround'片段?这应该将其中的内容合并到模板的“”部分。 – jcern

+0

我试过。我忘了在问题中加入这个,为此我表示歉意。这个问题真的是双重的: 1.我不知道如何使用默认升力阻尼工具,它取代了HTML 和,所以我不知道在哪里,如果有的话可以覆盖它的行为。 2. OpenLayers文档专门使用body的“onload”属性来调用设置地图的javascript。 仍会导致生成的HTML中来自Lift的新创建的。 – mephicide

回答

0

您是否阅读了关于Lift的5页...?当您键入content_id = main时,您告诉Lift忽略除<div id="main">的内部部分之外的所有内容。因此,对于所有这些工作,请将<head_merge>与脚本放在<div id="main">之内。

http://simply.liftweb.net/index-2.1.html

http://demo.liftweb.net/templating/head

+0

我知道。如果你真的读过我发布的内容,你应该注意到这个矛盾:在bootstrap.html文件中指定的作为参数提升:surround已经在其中有相关