Meteor Vorlage: Übergeben Sie einen parameter in jedem sub-template und rufen es in die sub-template-helper
Ich versuche herauszufinden, wie ein parameter übergeben werden, die in einem sub-template, das in einem jeden block, und verwenden Sie die parameter in der sub-template, als auch als sub-template-helper. Hier ist, was ich bisher ausprobiert:
Vorlage:
<template name="parent">
{{#each nodes }}
{{> child myParam}}
{{/each}}
</template>
<template name="child">
{{ paramName }}
</template>
js:
Template.parent.nodes = function() {
//return a list
};
Template.parent.myParam = function() {
return {"paramName" : "paramValue"};
};
Template.child.someOtherHelper = function() {
//How do I get access to the "paramName" parameter?
}
Bisher hat es nicht funktioniert, und es scheint irgendwie Durcheinander mein input-node-Liste.
Danke für die Hilfe.
InformationsquelleAutor user2680514 | 2013-08-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
{{> child myParam}}
es ruft das Kind Vorlage und MitarbeitermyParam
als aktuelle Vorlage Daten, Kontext, Bedeutung, dass in der Vorlage, die Sie verweisen können{{paramName}}
.In
someOtherHelper
könnten Siethis.paramName
abrufen"paramValue"
.Allerdings, wenn Sie mit
{{#each nodes}}{{> child}}{{/each}}
es bedeutet, dass der Inhalt des aktuellen Listenelements (geholt von einemLocalCursor
oder direkt ein array-Element) als Vorlage die Daten des Kindes, und Sie können auf die Eigenschaften des Listenelements mit{{field}}
im html-oderthis.field
in js.Was hier passiert ist, wenn Sie anrufen
{{> child myParam}}
, diemyParam
Helfer Inhalt ÜBERSCHREIBT die aktuelle node-Element als template-Daten, deswegen ist es Unsinn Ihrer Liste von Knoten.Einen quick (dirty) trick wäre, einfach erweitern die
myParam
Helfer, so dass es enthält auch die Vorlage von Daten aus der{{#each}}
block.Je nachdem, was Sie genau zu erreichen versucht, gibt es möglicherweise ein besserer Ansatz, aber diese bekommt den job getan, zumindest.