Grails 干扰 jquery-tmpl 语法
Posted
技术标签:
【中文标题】Grails 干扰 jquery-tmpl 语法【英文标题】:Grails interferes with jquery-tmpl syntax 【发布时间】:2011-04-22 02:29:12 【问题描述】:jQuery模板插件使用$foo
语法(example in jquery.tmpl doc):
$.tmpl( "<li>$Name</li>", myData )
但 Grails 也使用它 (example in Grails doc):
<body>
Hello $params.name
</body>
因此,当我在 .gsp 中包含 $.tmpl( "<li>$Name</li>", myData )
时,Grails 会将其呈现为 $.tmpl( "<li></li>", myData );
。
有没有简单的方法解决这个问题?
【问题讨论】:
【参考方案1】:使用 alt 语法:= Name
http://api.jquery.com/template-tag-equal/
【讨论】:
不错。这比尼克的解决方案字符少,而且它也不会突出我的语法!【参考方案2】:我只涉足过 Grails,但有一种方法可以获得文字输出:
$.tmpl("<li><%='$Name'%></li>", myData)
【讨论】:
谢谢,这行得通!我一直在尝试像$"\$\Name\"
这样疯狂的东西,但无济于事。【参考方案3】:
您可以尝试使用 jquery.noConflict 或 jQuery 本身:
jQuery.tmpl( "<li>$Name</li>", myData )
或
var jqc = jQuery.noConflict();
jqc.tmpl( "<li>$Name</li>", myData )
【讨论】:
【参考方案4】:为了避免冲突,你应该使用 zack 提到的语法。 但是,使用此标签时要小心:
= Name
“=”和变量的第一个字母之间应该有空格。
=姓名
= 名称
示例:错误
<tr id="ad=idmatchingtem "></tr>
正确
<tr id="ad= idmatchingtem "></tr>
【讨论】:
以上是关于Grails 干扰 jquery-tmpl 语法的主要内容,如果未能解决你的问题,请参考以下文章