Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Go-Vorlagen unterschiedliche Inhalte basierend auf einem Null-Objekt und Eigenschaftswerten anzeigen?

Wie kann ich in Go-Vorlagen unterschiedliche Inhalte basierend auf einem Null-Objekt und Eigenschaftswerten anzeigen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-21 06:44:09541Durchsuche

How Can I Display Different Content Based on a Nil Object and Property Values in Go Templates?

Nullwerte in Vorlagenbedingungen zulassen

Beim Arbeiten mit Go-Vorlagen kann es vorkommen, dass Sie den Standardinhalt eines Objekts anzeigen möchten ist Null, zeigt aber einen anderen Inhalt an, wenn eine bestimmte Eigenschaft festgelegt ist. Obwohl es möglich ist, anonyme Strukturen zu verwenden, kann dies zu unnötigen Boilerplates führen.

Eine vielseitige Lösung

Um dieses Problem elegant zu lösen, sollten Sie den folgenden Ansatz in Betracht ziehen:

Vorlagencode

{{if not .}}
   // default content
{{else if eq .MetaValue "some-x"}}
   // some-x case
{{else}}
   // other case
{{end}}

Erklärung

Dieser Vorlagencode wertet den folgenden Ausdruck in der Reihenfolge aus:

  1. {{if not .}}: Überprüft, ob das Objekt Null oder anderweitig leer ist (einschließlich false, 0, leere Arrays/Slices/Maps oder leere Strings). Wenn dies der Fall ist, wird der Standardinhalt angezeigt.
  2. {{else if eq .MetaValue "some-x"}}: Überprüft, ob das Objekt über eine MetaValue-Eigenschaft verfügt, die auf „some-x“ festgelegt ist. X". Wenn dies der Fall ist, werden für diese Eigenschaft spezifische Inhalte angezeigt.
  3. {{else}}: Wenn keine der vorherigen Bedingungen erfüllt ist, können alle verbleibenden Inhalte angezeigt werden.

Durch die Verwendung des Not-Operators anstelle von eq . nil, dieser Ansatz behandelt alle möglichen Szenarien, einschließlich Situationen, in denen das Objekt null oder leer ist oder einen anderen Wert als null hat. Dadurch entfällt die Notwendigkeit expliziter Nullprüfungen oder der Einführung unnötiger anonymer Strukturen, sodass Ihre Vorlagen sauber und prägnant bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go-Vorlagen unterschiedliche Inhalte basierend auf einem Null-Objekt und Eigenschaftswerten anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn