Grails-在javascript中访问http数据
这对我来说似乎很简单,但我正在努力!我正在开发我的第二个grails应用程序,第一个使用angular.js,但由于传统浏览器的要求,这次我无法使用。我已经使用.gsp模板挂钩(g:each、g:if等)和一些JQuery构建了一些页面模板,以完成一些基本的表示功能。现在的问题是,我需要在JavaScript中使用.gsp正在访问的数据(基本http get请求和页面加载) 我可以让控制器将数据呈现为JSON,但grails模板挂钩将停止工作 我可以从DOM中获取所有值并在JS中构建一个本地模型,或者我可以使用.gsp g:each输出数据,然后将每个数据保存到JS内联,但这两个过程看起来都很荒谬 我可以让控制器响应.gsp的数据,并分别为JS呈现为JSON,但这似乎是错误的Grails-在javascript中访问http数据,javascript,jquery,json,grails,Javascript,Jquery,Json,Grails,这对我来说似乎很简单,但我正在努力!我正在开发我的第二个grails应用程序,第一个使用angular.js,但由于传统浏览器的要求,这次我无法使用。我已经使用.gsp模板挂钩(g:each、g:if等)和一些JQuery构建了一些页面模板,以完成一些基本的表示功能。现在的问题是,我需要在JavaScript中使用.gsp正在访问的数据(基本http get请求和页面加载) 我可以让控制器将数据呈现为JSON,但grails模板挂钩将停止工作 我可以从DOM中获取所有值并在JS中构建一个本地模型
我不知道怎么做,请提供任何建议 使用返回此模型的操作的简单示例
def myAction() {
[name: 'bob']
}
你基本上有两个选择
1。将数据存储在JavaScript变量中
<script type="text/javascript">
var name = '${name}';
// now do something with the name
</script>
<div id="name" data-name="${name}"></div>
你不能使用
数据-
属性吗?在看到Donal下面的回复后,我现在就是这么做的。不过,在我处理大型数据表时,这似乎要走很长一段路,所以我必须非常小心我的命名。我所希望的是一种简单的方法,可以一次访问完整的模型,包括它的所有属性,而不必从它的组成部分重新构建它。谢谢@Dónal-我现在选择选项2。必须从一个巨大的数据集中手动设置每个变量,然后必须在JS中将其编译成一个漂亮的数据模型,这就像把鲸鱼扔到海滩上一样。尤其是在工作之后。我想这就是向后兼容的代价@bitfidget我看不出手动设置每个数据-
属性比为每个属性创建JS变量痛苦得多。就我个人而言,我更喜欢使用JSON而不是这些选项中的任何一个
var name = $('#name').data('name');