渲染一个Play!Framework2 javascript作为模板?

时间:2013-04-26 11:34:22

标签: templates playframework-2.1

我想从Play!Framework 2中的模板返回.js文件。

以下是我的表现:

在我的views文件夹中,我创建了一个模板文件:

initials.scala.js

包含类似的内容:

{
    'data': @Model.find.findList()
}

然后,在我的控制器中:

public static Result initials() {
    return ok(views.js.initials.render());
}

这对我来说非常简单,但我收到了这个错误:

  

错误:包views.js不存在

我做错了什么?

如果我将js重命名为txt(在文件名和控制器中的包调用中),一切正常。但是,如果我将其更改为js,我会收到错误。

3 个答案:

答案 0 :(得分:3)

您没有做错任何事情,Play允许您仅使用.html.xml.txt个视图扩展名,因此您需要使用其中一个。

从技术角度来看,无论你使用哪一个都无关紧要,无论如何你需要将它作为JavaScript从控制器返回,即用:

public static Result initials() {
    return ok(views.html.initials.render()).as("application/javascript");
}

答案 1 :(得分:0)

这可以通过在路线定义中放置特定资产的路线来实现。

即。 GET /assets/javascripts/initials.js controllers..initials()

答案 2 :(得分:0)

您可以拥有scala.js个文件但不要使用views.js.initials.render()来调用它,而是js.initials.render()

至少对于Scala,它适用于Play 2.2