javascript - 如何在 Grails 的 js 文件中应用 GString 插值

标签 javascript grails gstring

我的 GSP 文件(在 Grails 3.1.10 中):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <asset:javascript src="jquery-2.2.0.min.js"/>
    <asset:javascript src="myfile.js"/>
</head>
<body>
    <span id="greeting"></span>

</body>
</html>

myfile.js:

greeting = "${resp}"; // resp is passed from controller
$(document).ready(function(){
    $('#greeting').val(greeting);
});

嗯,我相信每个 grails 开发人员都知道如果我将 myfile.js 移动到我的 GSP 文件中,它就会起作用。

但是,我希望知道如何让独立的js文件能够正确处理GString的内联变量。

谢谢。

最佳答案

以下是我遇到与您相同的问题时所采取的方法。

通过以下方式将您的 GString 变量传递给外部 JS。

在外部 JS 中添加以下函数

function view_handler_function(greetingValue){

    //assign the value to your element
    $('#greeting').val(greetingValue);

    .....
    //Your other handling code
}

从您的 View 调用您的函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <asset:javascript src="jquery-2.2.0.min.js"/>
    <asset:javascript src="myfile.js"/>
</head>
<body>
    <span id="greeting"></span>

    <script>
        var greeting = "${resp}"; // resp is passed from controller
        $(document).ready(function(){

            //call to your external function 
            view_handler_function(greeting);
        });
    </script>
</body>
</html>

注意:这可能是也可能不是您正在寻找的确切答案,但这只是我遵循的一种方法。

关于javascript - 如何在 Grails 的 js 文件中应用 GString 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421830/

相关文章:

javascript - 是否可以使用 node.js 创建桌面应用程序?

JavaScript 类语法?

javascript - 推送新数据时 Angular ng-repeat OrderBy 中断

apache - 带有 Tomcat/Apache ProxyPass 的 Grails URL

malloc返回的指针可以改变吗

javascript - 检测 HTML 元素从顶部到左侧的距离?

grails - Grails WAR构建失败

groovy - Groovy 如何在 GString 中将 char[] 转换为 String?

string - Jenkinsfile 中变量的插值

unit-testing - 使用 Grails/Groovy 的 Mockito 中的错误