Angularjs ng-grid 使用 Grails JSON 数据

Angularjs ng-grid using Grails JSON data

Angular ng-grid 数据绑定问题

我有一个 Groovy/Grails 应用程序,它有一个域“Grid”class,我已经为其注册了一个自定义“marshaller”来生成我可以用于Angularjs ng-grid..

说“网格”是网格的实例 class, “grid as JSON” 生成所需的 JSON.

我有一个 Grails/groovy 控制器加载数据和 returns JSON:

def index() {
    def grid = Grid.first()
    grid as JSON
}

但我不知道如何将此 JSON 数据放入我的 GSP 中的 ng-grid 中:

<body ng-controller="MyCtrl">
    <script>
    var app = angular.module('myApp', ['ngGrid']);

    app.controller('MyCtrl', function($scope) {

        $scope.gridOptions = ${grid};  // NEED HELP HERE !
    });
    </script>

    <div class="gridStyle" ng-grid="gridOptions"></div>
</body>

我不知道如何将数据输入 $scope.gridOptions。当我查看使用 firebug 生成的内容时,我看到 $scope.gridOptions 是

{&quot;columnDefs&quot;:[{&quot;field&quot;: ...

这是编码后的 JSON 数据。 (引号被编码)。在 JSP 中的 Grails 后端和 ng-grid 之间传递 JSON 数据的最佳方式是什么?

感谢 Sridhar 的建议,我开始寻找在 GSP 中取消转义 JSON 的方法,我在这里找到了答案:

how-to-render-json-properly-without-escaping-quotes-inside-a-gsp-script-tag

我需要在我的 GSP 中使用 g:applyCodec 标签:

<g:applyCodec encodeAs="none">
     $scope.gridOptions = ${grid};
</g:applyCodec>