/ / Ako získať prístup k vonkajším nehnuteľnostiam vnorených {{#each}}? - javascript, meteor, meteor-blaze, medzerníky

Ako získať prístup k vonkajším nehnuteľnostiam vnorených {{#each}}? - javascript, meteor, meteor-blaze, medzerníky

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ď č. 1

vnú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>