Mám {{#each}}
blok, ktorý prechádza zoznamom zastávok, ktoré musí vodič vykonať. Každá zastávka musí mať spustený výber a výber sa vyberie z inej kolekcie. Takže mám výber v inom {{#each}}
.
Teraz musím programovo skontrolovať, či už bol ovládač vybratý v db pre toto konkrétne zastavenie, keď je výber spustený a nechajte ho vybratý.
Môj problém je v tom, že potrebujem prístup k informáciám z externého zdroja {{#each}}
porovnávať interne {{#each}}
.
Nižšie je kód, ktorý mám, ale keď ho spustím stopNum
je undefined
.
Akákoľvek pomoc tu sa veľmi oceňuje.
<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>
odpovede:
1 pre odpoveď č. 1vnútri #each
, kontext je nastavený na aktuálny prvok.
Ak chcete získať externú položku / vlastnosť, môžete získať nadradený kontext pomocou ..
v kóde šablóny alebo pomocou Template.parentData(numLevels)
v pomocníkoch:
{{#each drivers}}
{{#if dispatchDriverSelected driversName ../stopNum}}
<option value="{{driversName}}" selected>{{driversName}}</option>
{{else}}
<option value="{{driversName}}">{{driversName}}</option>
{{/if}}
{{/each}}
Tu je jednoduchý príklad:
Šablóna:
<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>
pomocníci:
Template.example.helpers({
datum() {
return {
outer: "outer 1",
inner: [{
prop: "inner 1"
},{
prop: "inner 2"
}]
}
},
someFunc(datum) {
return `processed ${datum}`;
}
});
poskytuje:
<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>