【问题标题】:Why is @first always false in my handlebars #each loop?为什么我的车把#each 循环中的@first 总是错误的?
【发布时间】:2015-08-06 11:13:27
【问题描述】:

使用 Ember.Handlebars,我正在尝试设置一个 Bootstrap 轮播来展示我的数据存储中的一系列问题。

我想在轮播的第一项上添加active 类,但听起来像我的 {{if @first}} 测试永远不会被评估为真。。 p>

  • 我的app/templates/issues-list.hbs 是:

    <div id="showcase-issues" class="carousel slide">
        <div class="carousel-inner">
            {{#each model.issues as |issue|}}
    
                {{#if @first}}
                <div class="active item">
                    {{#issue-item issue=issue}}{{body}}{{/issue-item}}
                </div>
                {{else}}
                <div class="item">
                    {{#issue-item issue=issue}}{{body}}{{/issue-item}}
                </div>
                {{/if}}
    
            {{/each}}
        </div>
        {{!-- Nav buttons, etc. ... --}}
    </div>
    
  • 我的app/routes/issues-list.js 很简单:

    model: function() {
    
        var issues = this.get('store').filter('issue', {
            filters: { "state" : "visible" }
        }, function(item) {
            return (item.get('state') === "visible") ;
        }).then( function(results) {
            return results ;
        }) ;
    
        return Ember.RSVP.hash({issues: issues}) ;
    }
    

有人遇到过这个问题吗?

有没有合适的方法来处理 DS.FilteredRecordArrays in a {{#each ...}} helper ?


我正在合作:

  • 灰烬 1.13.2
  • Ember 数据 1.13.5
  • 引导程序 3.3.5

非常感谢任何给予的帮助!

【问题讨论】:

  • 活动类是同时设置在其他元素上还是总是在第一个元素上?
  • Bootstrap 会在运行时切换它,是的。但我想首先展示的问题将永远是……第一个,有效的。为什么?

标签: javascript ember.js handlebars.js


【解决方案1】:

@index@first 在 htmlbars 中不可用。但是,您可以:

{{#each model.issues as |issue index|}}
  <div class="item {{unless index 'active'}}">
    {{#issue-item issue=issue}}{{body}}{{/issue-item}}
  </div>
{{/each}}

见:http://jsbin.com/zupezap/2/edit?html,css,js,output

【讨论】:

  • 几乎:非常感谢!您的版本给出了编译错误:A block may only be used inside an HTML element or another block. 但经过几次尝试我修复了它! Working JSBin here.祝你有美好的一天,享受你的编码!
  • @Brou 啊,没意识到,谢谢。这看起来也更干净。我已经更新了答案。
  • 标记为已解决,但是:您能调整一下 JSBin 链接吗?再次感谢!
  • 这太棒了!不错的一个
猜你喜欢
  • 2022-08-15
  • 1970-01-01
  • 2016-01-10
  • 2023-03-23
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
相关资源
最近更新 更多