In meinem gulpfile ich definiere eine MEMBER Array von Objekten auf die Vorlage übergeben:Lenker js Objekt Iteration
var gulp = require('gulp');
var handlebars = require('gulp-compile-handlebars');
var rename = require('gulp-rename');
var handlebars_helpers = require('handlebars-helpers')();
//http://assemble.io/helpers/helpers-html.html
var _ = require('underscore');
gulp.task('default', function() {
var templateData = {
memberInfo: [
{"member_email": "[email protected]", "list_id": "2", "name": "obsession cologne 3 oz", "brand": "", "price": "55.99"},
{"member_email": "[email protected]", "list_id": "1", "name": "red plaid skirt", "brand": "versace", "price": "55.99"},
{"member_email": "[email protected]", "list_id": "1", "name": "black ruffle shirt", "brand": "versace", "price": "47.99"},
]
}
options = {
helpers: _.extend(handlebars_helpers)
}
return gulp.src('template/email.handlebars')
.pipe(handlebars(templateData, options))
.pipe(rename('email.html'))
.pipe(gulp.dest('output'));
}
Was will ich auf meiner Vorlage zu tun ist, sagen: „für jedes Objekt in MEMBER, wenn die list_id ist gleich 1, diese Felder anzeigen "
{{name}}
{{brand}}
{{price}}
Was ist der richtige Weg, dies zu tun? Ich bin nagelneu zu Schluck und Lenker und die Erklärungen, die ich gefunden habe, scheinen in diesem Zusammenhang keinen Sinn zu machen. Lenker-Helfer hat einen geschickten Vergleichsoperator {{#is }}
so dass ich diesen Code geschrieben, aber es ist offensichtlich nicht korrekt gesetzt ist:
<ul>
{{#each memberInfo}}
{{#each this}}
<li>Key: {{@key}} Value = {{this}}</li>
{{#is @key 'list_id' }}
{{#is this 1 }}
{{name}}
{{brand}}
{{price}}
//Nothing is accessible here except this, as far as i can tell, so none of these values render
{{/is}}
{{/is}}
{{/each}}
{{/each}}
</ul>