javascript - 在不使用额外助手的情况下限制 Handlebars #each 中的结果

标签 javascript css loops handlebars.js zendesk

所以,我知道如果我能够实现额外的 Handlebars 助手,我就能解决这个问题,但这不是一种选择。

我们正在为我们的帮助台 [ZenDesk] 使用第三方后端系统,它使用 Handlebars 作为动态内容的一般标记。我在我们的帮助中心网站的主页上有一个部分,我想列出前 5-6 篇常见问题解答文章,然后下面有一个“查看更多”链接,供用户查看该特定部分中的其余文章。

开箱即用,它们允许我们使用 IF 和 IS 条件,但除了 TRUE 或 FALSE、不大于、不小于、不大于或等于等之外没有比较。我写了一个简单的帮助程序这将允许这样做,但无论我将它放在我们可用的模板中的什么位置,它总是会生成一个错误,指出该函数无效。

在与该应用程序的支持团队讨论后,我被告知不允许使用自定义助手。我必须完全依赖 HTML、CSS 和 JAVASCRIPT/JQUERY 来找到解决方案。

那么....有没有人知道我如何使用 CSS 或 JAVASCRIPT 在 5 次迭代中关闭 Handlebars #each 循环的可能解决方案?

更新:2018 年 9 月 5 日:

这是我在“常见问题”部分使用的 #each 循环

<h2>Frequently Asked Questions</h2>
  <section class="section faq-base">
    <section class="categories">

      <ul class="">
        {{#each categories}}
          {{#if ../has_multiple_categories}}
            <li class="">
              <a href='{{url}}' class="">
                <h4 class="blocks-item-title">{{name}}</h4>
              </a>
            </li>
          {{else}}
            {{#each sections}}
                    {{#is id //ID FOR FREQUENTLY ASKED QUESTIONS SECTION}}
                <div class="accordion homeFAQ" id="homeFAQ">
                  {{#each articles}}
                  <div class="card">
                    <div class="card-header" id="heading{{@index}}">
                      <h5 class="mb-0">
                        <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapse{{@index}}" aria-expanded="true" aria-controls="collapse{{@index}}">
                          {{title}}
                        </button>
                      </h5>
                    </div>

                    <div id="collapse{{@index}}" class="collapse" aria-labelledby="heading{{@index}}" data-parent="#homeFAQ">
                      <div class="card-body">
                        {{body}}
                      </div>
                    </div>
                  </div>
                  {{/each}}
                  <div class="card">
                    <div class="card-header">
                      <h5 class="mb-0">
                        <a href="{{url}}" class="btn btn-link collapsed">...SEE MORE</a>
                      </h5>
                    </div>
                  </div>
                </div>
                    {{/is}}

            {{/each}}
          {{/if}}
        {{/each}}
      </ul>
    </section>
  </section>

从上面的代码可以看出,我将 FAQ 插入到 Bootstrap Accordion 中,最后是 ...SEE MORE 按钮

最佳答案

可不可以给文章默认加一个display:none,然后用JS根据页面上文章的类(或什么的)统计页面上的文章数,然后再用JS去掉前5-6篇的display:none?可能不是最优雅的方法,但应该是实现您所寻找的目标的一种方法。

关于javascript - 在不使用额外助手的情况下限制 Handlebars #each 中的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187685/

相关文章:

javascript - 如何创建无限滚动图库

javascript - 使用 jQuery 更改特定文本

html - 为所有操作系统使用 CSS 的粘性表两个标题

css - 最大高度 Firefox/Opera/IE

javascript - jQuery/Javascript 链接会成为解决方案吗?

javascript按位运算符问题

jquery - 从下拉菜单中的单个 <option> 输出多个值(Highslide JS)

javascript - 循环中暂停并重新启动setTimeout

java - 在 iframe 中搜索按钮

java - 控制台条形图使用循环,不带图形JAVA