如何访问嵌套 {{#each}} 中的外部属性?
How to get access to outside properties in a nested {{#each}}?
我有一个 {{#each}}
块 运行 通过 driver 必须到达的停靠点列表。每个停靠点都需要有一个 select 运行 并且 select 从另一个 collection 引入。所以我在另一个 {{#each}}
.
中有 select
现在我需要以编程方式检查 driver 是否已经在数据库中为这个特定的站点编辑 select,因为 select 是 运行ning 并拥有它得到 selected。
我的问题是我需要从外部 {{#each}}
访问信息以在内部 {{#each}}
中进行比较。
下面是我的代码,但是当我 运行 它时 stopNum
是 undefined
。
非常感谢任何帮助。
<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
中,上下文设置为当前元素。
如果你想获取一个外部的item/property,你可以在模板代码中使用..
或者在helpers中使用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>
我有一个 {{#each}}
块 运行 通过 driver 必须到达的停靠点列表。每个停靠点都需要有一个 select 运行 并且 select 从另一个 collection 引入。所以我在另一个 {{#each}}
.
现在我需要以编程方式检查 driver 是否已经在数据库中为这个特定的站点编辑 select,因为 select 是 运行ning 并拥有它得到 selected。
我的问题是我需要从外部 {{#each}}
访问信息以在内部 {{#each}}
中进行比较。
下面是我的代码,但是当我 运行 它时 stopNum
是 undefined
。
非常感谢任何帮助。
<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
中,上下文设置为当前元素。
如果你想获取一个外部的item/property,你可以在模板代码中使用..
或者在helpers中使用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>