【问题标题】:Set Active Tab Pane in Emberjs Handelbars在 Ember Js Handlebars 中设置活动选项卡窗格
【发布时间】:2014-10-14 09:41:15
【问题描述】:

我的 emberjs 应用程序中有一个选项卡窗格(引导程序),第一个选项卡应该从一开始就处于活动状态。我发现一些站点可以在手栏中获取每个循环的索引,例如{{#if @first}},但它不起作用。

什么是最简单的解决方案?

代码如下:

<ul class="nav nav-tabs">
  {{#each model.languages}}
    <li><a href="#{{this.language}}" data-toggle="tab">{{this.language}}</a</li>
  {{/each}}
</ul>

<div class="localized-system-info tab-content">
  {{#each model.systemLanguages}}
    <!-- forms -->
  {{/each}}
</div>

【问题讨论】:

  • 你有任意数量的标签,还是一个固定的常数?
  • 任意的,但这不重要,我总是有一个修复选项卡,只需将活动设置为第一个

标签: twitter-bootstrap ember.js handlebars.js


【解决方案1】:

如果您的第一个标签始终是选中的,那么您可以执行以下操作:

// controller.js
languages: function() {
    // Assuming the languages are already ordered
    var isFirst = true;
    return this.get('model.languages').map(function(language) {
        var obj = {
            language: language,
            isFirst: isFirst
        };

        isFirst = false;

        return obj;
    });
}.property('model.languages.[]')

然后在你的模板中:

{{#each languages}}
    {{#if isFirst}}

    {{else}}

    {{/if}}
{{/each}}

这应该允许您为第一语言实现任何自定义功能,而不是其他语言。

【讨论】:

  • 谢谢,感谢您的回答,但我真的很难解决这样的问题。在我看来,这种活动状态不应该保存在对象中。这只是一个观点,没有任何逻辑。可悲的是车把是如此糟糕并毁了 emberjs :(
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
相关资源
最近更新 更多