gpt4 book ai didi

javascript - g :message with arguments inside Javascript/jQuery not working as expected

转载 作者:行者123 更新时间:2023-11-30 12:05:23 25 4
gpt4 key购买 nike

我遇到了一个问题,字符串参数被 chop 为我们的 g:message 标签中的第一个字符(longs/integers 似乎没问题)。

最终,我发现我们在 Javascript 中调用 g:message 的语法不正确,所以一些小的调整解决了这个问题。问题是 - 我不明白为什么前者不起作用。

谁能描述这里发生的事情?

jQuery("#myId").html("<g:message code='domain.message.path' args="${command?.foo?.name}"/>"); //incorrect, only displays first character of message

jQuery("#myId").html("${g.message(code: 'domain.message.path', args: [command?.foo?.name])}"); //correct, displays full string

最佳答案

我假设您将其呈现为 .gsp 页面的一部分?事情是这样的。在第一个中,您嵌套了引号,实际上将 ${} 部分留在了字符串之外。甚至 Stackoverflow 也能分辨;注意那部分是如何不同的颜色:

jQuery("#myId").html("<g:message code='domain.message.path' args="${command?.foo?.name}"/>"); 

看看 html( 末尾的引号如何被 ${ 之前的引号结束,而将 ${command?.foo?.name} block 留在字符串之外?如果 command.foo.name 是字符串 "bob ",那么当它呈现时,你会得到:

jQuery("#myId").html("<g:message code='domain.message.path' args="bob"/>");

您可能认为这看起来不错,但 javascript 处理起来很差。

如果您对内部字符串使用单引号,就像您对“domain.message.path”所做的那样,它应该可以正常工作:

jQuery("#myId").html("<g:message code='domain.message.path' args='${command?.foo?.name}'/>"); 

关于javascript - g :message with arguments inside Javascript/jQuery not working as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com