【问题标题】:Grails javascript render from controller to gspGrails javascript从控制器渲染到gsp
【发布时间】:2014-06-21 21:12:05
【问题描述】:

我正在尝试将一些 Javascript 从我的控制器渲染到我的 GSP,如下所示:

render text: """<script type="text/javascript">
                                            alert("Row number: " + rowNumber); 
                                        </script>""",
                               contentType: 'js'

其中“rowNumber”是我的控制器中的一个变量,我希望它的值出现在警报框中。我似乎无法弄清楚语法,需要一点帮助。目前我在浏览器中收到此错误:

Uncaught ReferenceError: rowNumber is not defined 

【问题讨论】:

    标签: javascript grails


    【解决方案1】:

    你想要这样的东西:

    render text: """<script type="text/javascript">
                        alert("Row number: " + ${rowNumber}); 
                    </script>""",
           contentType: 'js'
    

    这将导致您的控制器中的rowNumber 的值在字符串被渲染之前被替换到字符串中。

    编辑:

    (另一种选择)

    您可以通过以下方式完全取消串联:

    render text: """<script type="text/javascript">
                        alert("Row number: ${rowNumber}"); 
                    </script>""",
           contentType: 'js'
    

    【讨论】:

    • 按照你的方式,文字 alert("Row number: " + rowNumber); 将被渲染,而不是像 alert("Row number: " + 42); 这样的东西。
    • 所有这些都假设在你的控制器中调用 render 的范围内有一个名为 rowNumber 的变量。
    • 请注意,您还可以将 JavaScript 放入模板并从控制器呈现,而不必内联三重引号。然后您将rowNumber 传递到模板中,例如render template: 'rowNumberJS', model: [rowNumber: rowNumber]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2011-03-14
    • 2011-03-20
    • 2012-03-27
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多