http://www.playframework.com/documentation/2.1.x/JavaTodoList
使用上面的教程作为参考,我创建了一个应用程序,它通过Application控制器从模型发送数据到视图。 我已设法将模型(任务)显示为高图表。代码在这里。
public static Result format(){
return ok(views.html.frmt.render("Visualize it",Task.all()));
}
这将转到此视图页面。 http://ideone.com/ycz9ko
目前,我在javascript代码本身内部使用scala模板。请参阅第9-14行和第20-24行。这种不雅的做事风格并不是最佳选择。
我希望能够使用Json来完成上述任务。
public static Result jsonIt(){
List<Task> tasks = Task.all();
return ok(Json.toJson(tasks));
}
我的Qns是如何将JSON对象发送到视图模板。 以及如何将其解析为Highcharts格式。有没有一些标准程序来做到这一点?或者我必须写自己的方法来做到这一点? 如果有人能给我看一个代码片段,那就太棒了。另外我更喜欢不使用Ajax的帖子。我想先知道如何做到这一点。
我还发现这个stackoverflow帖子很有用。how to parse json into highcharts。但是,它没有回答关于从Play格式转换为Highcharts格式的部分。
提前致谢
答案 0 :(得分:0)
您不需要将json object
传递给您的模板,而是可以从客户端javascript(您的模板)执行ajax调用并获取json响应,您可以在javascript代码中进一步使用它来构建图表。例如 :
你有一些绑定到你的控制器jsonIt()
的路径,就像这样/ chartsdata / json
然后使用jquery shorthand
获取ajax请求:
var chart_data = $.get('/chartsdata/json', function(data) {
return data;
});
现在,您可以使用chart_data
an array of objects
,其中每个对象代表一个任务,在您的其他javascript代码中构建图表。