无法在流星中使用车把@first 数据属性

Posted

技术标签:

【中文标题】无法在流星中使用车把@first 数据属性【英文标题】:unable to use handlebars @first data propriety in meteor 【发布时间】:2019-10-23 01:36:50 【问题描述】:

我正在将我过去的车把项目渲染到一个流星应用程序中,但它似乎不支持 @data 属性。就像 @first 我用来创建反应式幻灯片一样。

var carousel = [
    
        film:"img_1.jpg",
        desc:"the first"
    ,
    
        film:"img_2.jpg",
        desc:"the second"
    ,
    
        film:"img_3.jpg",
        desc:"the third"
    
];

Template.hello.helpers(net:carousel);

<div id="MyCarousel" class="carousel slide" data-ride="carousel">

    <div class="col-md-9">
        <ol class="carousel-indicators">
            <li id="data-target" data-slide-to="0" 
                             class="active"> </li>
            <li id="data-target" data-slide-to="1"> </li>
            <li id="data-target" data-slide-to="2"> </li>
        </ol>
      <div class="carousel-inner" role="listbox">
        #each net
        <div class="carousel @index">
          <img class="first-slide" >
          <div class="container">
            <div class="carousel-caption">
              <div class="col-md-8">
                <h2>JAX 2015</h2>
                <hr/>
                <p>desc</p>
                </div>
                  <div class="col-md-4">
                    <div class="carousel-image">
                      <img src="film"  
                               />
                    </div>
                  </div>
                </div>
              </div>
            </div>
           /each
        </div>
                .....
    </div>
  </div>

我想知道是否有办法通过外部包或简单的js函数绕过限制。

【问题讨论】:

似乎第一部分是文本而不是代码,无论如何它是我在模板中使用的数组和助手 【参考方案1】:

第三方包

有一个包叫raix:handlebar-helpers,实现了$last等帮助器,见:https://atmospherejs.com/raix/handlebar-helpers

Blaze 内置变量

Blaze 有一个内置的特殊变量@index,可以在#each 的主体内部使用它来获取序列中当前渲染值的从0 开始的索引。

更多详情请见http://blazejs.org/api/spacebars.html#Each。

然而,这需要进一步的工作来使用它来实现 first / last 助手。

【讨论】:

您可以添加到您的答案中,如果只需要第一个元素,那么实现它以支持包是有意义的,而当需要更多像 last 和 eq 这样的助手时,包是有意义的。

以上是关于无法在流星中使用车把@first 数据属性的主要内容,如果未能解决你的问题,请参考以下文章

如何将主干视图连接到流星车把模板?

全局助手正在覆盖流星车把模板中的本地上下文

将模板中写入的数组传递给流星/车把助手

流星对象在控制台中可用,但抛出“无法读取属性 findOne of undefined”

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”

无法将车把数据导入模板