Mea*_*eam 5 javascript grails json
我希望直接在视图中通过嵌入数据将数据从控制器传递到javascript.(因此不会有额外的请求.)
我的第一个解决方案是as JSON在GSP中使用这样的:
<script>
var data = ${invoice as JSON};
</script>
Run Code Online (Sandbox Code Playgroud)
我不认为这是个好主意,因为我必须使用(Grails 2.2)
grails.views.default.codec = "none"
Run Code Online (Sandbox Code Playgroud)
或(Grails 2.3)
grails {
views {
gsp {
codecs {
expression = 'none'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我发现我可以像这样创建一个小的taglib:
def json = { attrs, body ->
out << (attrs.model as JSON)
}
Run Code Online (Sandbox Code Playgroud)
我可以在GSP中使用以下代码:
<script>
var data = <g:json model="${invoice}" />;
</script>
Run Code Online (Sandbox Code Playgroud)
现在,问题.使用taglib是最佳做法吗?如果没有,请给我最好的解决方案.
小智 3
转换答案中的评论。您可以在控制器中创建 JSON 字符串并将其传递到视图。Grails 2.3.x 具有不会对您的内容进行编码的原始编解码器。有关此编解码器的更多信息请参见此处。
例子:
class MyController {
def index() {
String invoiceString = invoice as JSON
[json: invoiceString]
}
}
Run Code Online (Sandbox Code Playgroud)
索引.gsp
<script>
var data = ${raw(json)};
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3705 次 |
| 最近记录: |