繁体   English   中英

如何访问嵌套{{#each}}中的外部属性?

[英]How to get access to outside properties in a nested {{#each}}?

我有一个{{#each}}块,该块贯穿了驾驶员必须进行的停车的清单。 每个停靠点都需要进行选择运行,选择从另一个集合中吸取。 因此,我在另一个{{#each}}进行了选择。

现在,我需要以编程方式检查是否已在数据库中为此特定停止选择了驱动程序,因为选择正在运行并被选中。

我的问题是我需要从外部{{#each}}访问信息以在内部{{#each}}

下面是我拥有的代码,但是当我运行它时, stopNumundefined

非常感谢您的任何帮助。

<td class="text-left">
    {{#if notEquals stopNum 0}}
    <select class="form-control driverName clearForm" id="driverName{{stopNum}}" name="driverName{{stopNum}}">
        <option value="" ></option>
        {{#each drivers}}
        {{#if dispatchDriverSelected driversName stopNum}}
        <option value="{{driversName}}" selected>{{driversName}}</option>
        {{else}}
        <option value="{{driversName}}">{{driversName}}</option>
        {{/if}}
        {{/each}}
    </select>
    {{/if}}
</td>

#each ,上下文设置为当前元素。

如果要获取外部项目/属性,则可以在模板代码中使用..或在助手中使用Template.parentData(numLevels)来获取父上下文:

{{#each drivers}}
    {{#if dispatchDriverSelected driversName ../stopNum}}
        <option value="{{driversName}}" selected>{{driversName}}</option>
    {{else}}
        <option value="{{driversName}}">{{driversName}}</option>
    {{/if}}
{{/each}}

这是一个简单的示例:

模板结构:

<template name="example">
  {{#with datum}}
    <div class="wrapper">
    {{outer}}
    <div class="items">
      {{#each inner}}
        <div class="inner">
        {{prop}} {{someFunc ../outer}}
        </div>
      {{/each}}
    </div>
  </div>
  {{/with}}
</template>

帮手:

Template.example.helpers({
  datum() {
    return {
      outer: 'outer 1',
      inner: [{
        prop: 'inner 1'
      },{
        prop: 'inner 2'
      }]
    }
  },
  someFunc(datum) {
    return `processed ${datum}`;
  }
});

呈现给:

<div class="wrapper">
  outer 1
  <div class="items">          
    <div class="inner">
      inner 1 processed outer 1
    </div>

    <div class="inner">
      inner 2 processed outer 1
    </div>

  </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM