Ich habe ein Szenario, wo ich versuche, einen benutzerdefinierten Lenker Helper, der die Länge eines Arrays und wenn mehr als drei Objekte in diesem Array vorhanden sind, nur die ersten drei Elemente, aber Wenn dies nicht der Fall ist, geben Sie den vollen Betrag zurück. Unten war mein Versuch, genau das zu tun und ich bekomme die richtige Menge an Objekten zurück, wenn ich einen Wert für limitAmount
übergebe, aber die Werte, die zurückgegeben werden, sind für die Anzahl der Objekte, die vorhanden sind. Dies ist nicht was ich gesucht habe und ich frage mich jetzt, ob eine For-Schleife beteiligt sein sollte, um die Werte der Objekte zurück zu geben. Wird das einfach mit einer for-Schleife gelöst?Lenker Array Länge Conditional Helfer
Detaillierte Beispiel von dem, was erscheint:
[object SequelizeInstance:blog_comment],[object SequelizeInstance:blog_comment],[object SequelizeInstance:blog_comment]
Objektstruktur Beispiel:
blog_comments: [
{
commentId: 1,
comment: 'Test',
userId: 2},
{
commentId:2,
comment: '2nd Test',
userId: 1
}]
Registrierte Lenker:
hbs.registerHelper('commentLimit', function(comment, limitAmount, options){
if(comment.length > limitAmount){
return comment.slice(0,limitAmount);
} else {
return comment;
}
})
Verwendung in Vorlage:
{{#commentLimit blog_comments 2}}
{{#ifeq userId @root.user.userId}}
<a href="#" class="comment-delete" data-comment-id="{{commentId}}">Delete</a></p>
{{/ifeq}}
<p class="blog-comment">{{comment}}</p>
{{/commentLimit}}
danke für Ihre Antwort. Sehr hilfreich, aber ich habe ein Problem mit der Verwendung der obigen Schleife gefunden. Wenn ich Ihren Hilfsmodifikationen folge und nur '{{#commentLimit blog_comments 2}} {{/ commentLimit}}' verwende, erhalte ich die korrekte 2-Eintragsgrenze, aber es wiederholt sich zweimal über denselben Eintrag, anstatt die ersten zwei Einträge. Wenn ich '{{#each (commentLimit blog_comments 2)}} {{/ each}}' 'hole, ist' options.fn keine Funktion'. Wenn ich nur die if-Anweisung mit '{{#each (commentLimit blog_comments 2)}}} verwende, bekomme ich die korrekte Ausgabe. Irgendein Grund für die Probleme mit den ersten beiden Versuchen? – cphill
Oh Entschuldigung. Für die erste Option Ersetzen Sie einfach res [0] 'mit' res [i] 'in helper. Und für die zweite Lösung reicht Ihr ursprünglicher Helfer aus – kumkanillam