2013-08-23 33 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已經在其中有相關