“..”在 Meteor Spacebars 语句中做什么?

What does ".." do in an Meteor Spacebars statement?

我有一个 handlebar 语句,它将用户 ID 传递给助手。我不确定这是如何工作的。车把 {{#if isowner ..}} 有 .. 这里传递给辅助功能的参数是什么?

<template name="test">
  ...
    <table class="table table-hover table-striped">
      {{#each tester}}
      <tr><
        <td>{{#if isowner ..}} 
                  <i class="fa fa-trash removeUser"></i>
            {{/if}}
        </td>
      </tr>
      {{/each}}
    </table>
  ...    
</template>


Template.test.helpers({
  'isowner':function(parent){
    return parent.userId === Meteor.userId();
  }
});

显然,这仅在用户标识相同时才成立。 Meteor.userId() 是客户端的当前用户。那么哪个userid被传递给了parent呢? 当然,这个名字不言而喻。它必须高出一个级别——但这在技术上是什么?去哪里?

.. returns 父(封闭)模板或结构的数据上下文——我装配了一个非常简单的 MeteorPad here,您可以尝试看看它是如何工作的。

在你的情况下,我认为它可能返回 test 模板的数据上下文。您可以 console.log(parent) 在您的助手中检查该对象并获取更多信息:

Template.test.helpers({
  'isowner':function(parent){
    console.log(parent);
    return parent.userId === Meteor.userId();
  }
});

您可以找到有关 .. 如何解析以及如何在 spacebars readme.

中使用的更多信息