使用&书信电报;g:javascript中的消息标记

使用&书信电报;g:javascript中的消息标记,java,javascript,grails,internationalization,gsp,Java,Javascript,Grails,Internationalization,Gsp,我想在javascript中使用下面的标记来读取resourcebundle值 var myText = "<g:message code='${steps[i].text}' />" ; var myText=”“; 步骤[i].text不是静态的,并且不断变化,这就是为什么我需要将“步骤[i].text”的值传递给resourcebundle 如果我使用 var myText = "<g:message code='a.b.key' />" ; var myTe

我想在javascript中使用下面的标记来读取resourcebundle值

var myText = "<g:message code='${steps[i].text}' />" ;
var myText=”“;
步骤[i].text不是静态的,并且不断变化,这就是为什么我需要将“步骤[i].text”的值传递给resourcebundle

如果我使用

var myText = "<g:message code='a.b.key' />" ;
var myText=”“;
那么它工作得很好。 但对于下一行,它给出如下错误:

var myText = "<g:message code='${steps[i].text}' />" ;

org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <g:render>: Error executing tag <r:script>: Error evaluating expression [steps[i].text] on line [393]: Cannot get property 'null' on null object
var myText=”“;
org.codehaus.groovy.grails.web.taglib.exceptions.grailstageexception:执行标记时出错:执行标记时出错:在第[393]行计算表达式[steps[i].text]时出错:无法获取null对象的属性“null”

我的代码位于.gsp文件中,该文件能够读取资源包。

问题在于,当呈现gsp grails时,会转换相应消息中的g:消息,但它不会转换相应标签中的${steps[i].text}

也许您可以使用message标记的args来解决此问题:

.普惠制


也许这对你有用:

var myText = "${g.message(code:steps[i].text)}";

我在这里假设“steps”是一个服务器端变量,而不是javascript变量。

steps[I]。text
服务器端模型中的某个东西还是客户端的某个东西?消息标记是服务器端的,不能与代码参数的客户端值一起使用。是步骤[i]。文本来自服务器端,但在客户端,我得到的是正确的。因为如果我不进行本地化,那么我可以在页面上正确地看到该值。步骤[i]。文本是完全未知的值。只能在运行时读取。步骤[i]。文本来自后端。我可以执行警报(步骤[I].text),并且值得到正确的设置。这就是为什么我不能使用
a.b.key = whatever {0} means
var myText = "${g.message(code:steps[i].text)}";