Übergabe des Anforderungskontexts in Go-Vorlagen
In Go-HTML-Vorlagen ist der Zugriff auf Informationen aus der Anforderung, die ihre Ausführung ausgelöst hat, nicht einfach. Dies kann problematisch sein, wenn Sie bedingte Logik basierend auf Benutzerattributen anwenden müssen, beispielsweise um festzustellen, ob ein Benutzer ein Administrator ist.
Um dieser Herausforderung zu begegnen, besteht der bevorzugte Ansatz darin, den Datenpipeline-Mechanismus zu nutzen. Durch Einbetten des Anforderungskontexts in die Datenstruktur Ihrer Vorlage können Sie auf anforderungsspezifische Informationen innerhalb der Vorlage zugreifen.
Angenommen, Sie möchten einen Link zu einer eingeschränkten „Nuklearschaltfläche“ nur dann anzeigen, wenn der Benutzer ist ein Administrator. In diesem Fall könnten Sie Ihre Vorlagendaten wie folgt strukturieren:
<code class="go">type TemplateData struct { Content *Content Context *Context IsUserAdmin bool }</code>
Innerhalb Ihrer Vorlage können Sie dann die Variable IsUserAdmin verwenden, um den Link bedingt anzuzeigen:
<code class="html">{{if IsUserAdmin}} <a href="/admin/nuke">Go to the big red nuclear button</a> {{end}}</code>
Dieser Ansatz übergibt anforderungsspezifische Informationen effektiv an die Vorlage, ohne Logik in die Ansicht einzumischen. Dadurch können Sie die Trennung zwischen dem Controller, der die Anwendungslogik verwaltet, und der Vorlage, die das Rendering übernimmt, beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go-Vorlagen auf den Anforderungskontext zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!