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( "&lt;li&gt;$Name&lt;/li&gt;", myData ) 时,Grails 会将其呈现为 $.tmpl( "&lt;li&gt;&lt;/li&gt;", 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 语法的主要内容,如果未能解决你的问题,请参考以下文章

Grails/GORM“入”标准

jQuery-tmpl 模板引擎使用方法说明

grails 2.0 <g:javascript> 不起作用

Grails:如何使 g:textfield 自动完成?

Grails g:每个标签

如何在 Grails 的控制器之外使用 g.message? [复制]