2011-04-17 93 views
1

我是Lift框架的新手,過去幾天我一直在玩Flot小部件。我真的很喜歡這樣一個事實,即我用Scala編寫的Flot JavaScript有一個外觀。但是,當我試圖向圖中添加更多交互功能時,遇到了一些問題。Lift,Flot和JQuery

我試圖做的是讓用戶放大圖中的數據點。基本上我試圖完成這個例子,但在電梯:http://people.iola.dk/olau/flot/examples/zooming.html

變焦的肉類是由這個JavaScript處理:

$("#placeholder").bind("plotselected", function (event, ranges) { 
    // do some checks on the ranges... 

    // do the zooming 
    $.plot($("#placeholder"), getData(...), 
        $.extend(true, {}, options, { 
         xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }, 
         yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to } 
        })); 

是什麼在電梯做到這一點的最好方法是什麼?在上面的代碼中,我使用純javascript生成了情節,但flot-widget應該爲我做這件事。看起來不正確的代碼兩次,一次使用Flot-widget,並再次在這裏原始的JavaScript。我不確定是否應該將上面的代碼塊移到Scala中。此外,我還沒有找到任何有關如何在Scala DSL中進行jQuery綁定的文檔。任何幫助/建議將不勝感激!

謝謝!

最後一個竅門... jquery.flot.selection插件需要做縮放,所以我不得不手動添加到我的Lift項目。這很好,除了jquery.flot.js是自動內置的。當我添加flot.selection插件時,我的插件版本對於包含在Lift中的jquery.flot.js來說太新了。我不得不通過罐子來探索我需要的選擇插件的版本。

我已經被maven燒燬了很多次,其中一個庫自動爲我包含另一個庫...我意識到JavaScript可能會有所不同,但對於包括其他庫在內的庫,我還是很害羞。

好的......我現在就不再咆哮:) 再次感謝您的幫助。

回答

0

我不能評論Lift平臺的方面,但對於本身而言,沒有辦法繞過使用幾乎相同的選項和數據重新調用情節。

如果你自己寫了整個東西,我會說只是寫一個函數,它會爲你帶來範圍對象和調用繪圖,並在頁面加載和plotselected函數中調用它。事實上,兩個電話是你唯一合適的選擇。

+0

感謝您的迴應!這個問題並不像Flot集成升降機一樣。現在我用Lift API調用flot - 看起來確實是進行縮放的唯一方法是使用原生Flot API。我想我將不得不放棄Lift API並使用純JavaScript(基本上按照上面所述)。 – shj 2011-04-20 23:39:47