2011-04-17 94 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