我正在使用play框架。我有一个coffeescript查询返回一个对象列表,我想在其上做一些中等复杂的渲染。在.scala.html文件中写入比在咖啡脚本中更容易和更清晰。有没有办法从咖啡脚本访问视图中的文件?
基本上,我想要这样的东西
应用/视图/ index.scala.html
@()
<script type='text/javascript' src='@routes.Assets.versioned("javascripts/index.js")'></script>
<div id="widgets"/>
应用/资产/ Javascript角/ index.coffee
$ ->
$.get "/widgets", (widgets) ->
$.each widgets, (index, widget) ->
$("#widgets").append ??views.widget(widget)
?? views.widget不起作用,但我不知道用什么来代替它。
应用/视图/ widget.scala.html
@(widget: Widget)
Foo: @widget.foo<br>
Bar: <b>@widget.bar</b><br>
Baz: @widget.baz<br>
简而言之,coffeescript执行一个请求,该请求获取一个对象列表,这些对象将传递给视图进行渲染。我并不依赖于那个工作流程,但是(根据我对Play的理解),它似乎是明显而且最好的方法。如果有不同的工作流程可以完成我想要做的事情,我很高兴能够学到这一点。
要明确的是,如果/widgets
返回两个小部件,foo,bar,baz
等于1,2,3
和a,b,c
,我希望这是最终结果:
<script ....></script>
<div id=widgets>
Foo: 1<br>
Bar: <b>2</b><br>
Baz: 3<br>
Foo: a<br>
Bar: <b>b</b><br>
Baz: c<br>
</div>
我正在使用Play 2.4,但还没有播放2.4标签,我认为我没有足够的声誉来创建它。