在HAML中使用JQuery客户端模板逻辑

时间:2012-09-13 20:43:48

标签: jquery ruby haml jquery-templates

我目前正在get-serve网络服务项目中使用HAML。似乎我的设置不允许我使用JQuery客户端模板逻辑。具体地说...

如何根据变量是否存在有条件地呈现视图代码。在我的foo.html.haml文件中,我正在尝试

{{if $data}}
Show this
{{/if}}

如果我没有有效地描述我的问题,我很擅长构建带有网络服务的应用程序来原谅我。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,听起来你正试图将一些tmpl逻辑与正在生成该页面的HAML混合。重要的是要记住,在解析所有HAML并将其转换为HTML之后,jQuery tmpl将会发生。

所以,如果您想要类似以下内容作为客户端HTML:

<script id="myTmpl" type="text/x-tmpl">
    {{if $error}}
         <div class="error">
             Error!!!
         </div>
    {{else}}
         <div class="non-error">
             Everything looks ${adjective} to me.
         </div>
    {{end if}}
</script>

您可以像下面这样使用HAMl(缩进将关闭):

%script#myTmpl{:type => "text/x-tmpl"}
    :plain
        {{if $error}}
    .error Error!
    :plain
        {{else}}
    .non-error Everything looks ${adjective} to me.
    :plain
        {{/if}}

请记住,您正在尝试输出可解析的jQuery-tmpl。你的另一个选择是在HAML的:plain标签中做所有事情,有些人更喜欢这个以便于阅读。