Backbone JS和Handlebars JS #unless渲染问题

时间:2014-03-14 13:29:53

标签: backbone.js handlebars.js

在我的Backbone App中,我正在渲染一个View,它从我的数据库加载数据。如果没有数据,我希望它显示“没有数据”这样的消息。我使用了#unless - 方法,但我的问题是,在数据加载/渲染时显示此消息,然后在数据准备好并显示时消失。我的Handlebars模板看起来像这样:

{{#each this}}
<div>
  <div>        
    <article>
        {{#if cover_image}}
        <img src="{{cover_image}}">
        {{else}}
        <img src="noimage.jpg" />
        {{/if}}
    </article> 
  </div>
  <div>
    <h2>{{album_title}}</h2>
    <h4>
        {{#if physicalReleaseDate}}
        <time datetime="2014-01-10">({{physicalReleaseDate}})</time>
        {{else}}
        <time datetime="2014-01-10">({{digitalReleaseDate}})</time>
        {{/if}}                 
    </h4>
  </div>
  <div>
    <div>
        <ol>
            {{#each tracks}}
            <li>{{track_title}}<span>{{track_duration}}</span></li>
            {{/each}}
        </ol>
    </div>
  </div>
</div>
{{/each}}

{{#unless this}}
<div class="noAlbums">
    <h2>There's no data</h2>
</div>
{{/unless}}

有谁知道如何避免这种情况?

提前致谢...

1 个答案:

答案 0 :(得分:0)

您需要inverted section

docs中的示例:

型号:

    {
      "repos": []
    }

模板:

    {{#repos}}<b>{{name}}</b>{{/repos}}
    {{^repos}}No repos :({{/repos}}