logo Buffalo slack logo
Parciales
Frontend

Parciales

Este documento solo aplica cuando se usa github.com/gobuffalo/buffalo/render.

Consulta github.com/gobuffalo/plush para más detalles sobre el paquete de plantillas.

Uso

Puedes llamar tus parciales usando el helper de plush partial:

<h1>Create New User</h1>

<%= partial("users/form.html") %>
<form action="/users/" method="POST">
<!-- form content here  -->
<form>
<h1>Create New User</h1>

<form action="/users/" method="POST">
<!-- form content here  -->
<form>

Contexto

Todo el contexto de renderizado de la plantilla padre se pasará automáticamente a través del parcial, y a cualquier parcial que puedas llamar. (Ve también Context)

func UsersEdit(c buffalo.Context) error {
	user := User{
		Name: "John Smith",
	}
	// ...
	c.Set("user", user)
	return c.Render(http.StatusOK, render.HTML("users/edit.plush.html"))
}
<h1>User to edit: <strong><%= user.Name %></strong></h1>

<%= partial("users/form.plush.html") %>
<form action="/users/<%= user.ID %>/">
<!-- form content here  -->
</form>
<h1>User to edit: <strong>John Smith</strong></h1>

<form action="/users/077acb8d-6cf7-4e7c-ba6c-c60e58ea5fcb/">
<!-- form content here  -->
</form>

Contexto local

Además de tener el context global, puedes establecer variables adicionales sólo para los parciales como variables “locales”.

func ColorsHandler(c buffalo.Context) error {
  colors := map[string]interface{}{
		"White":  "#FFFFFF",
		"Maroon": "#800000",
		"Red":    "#FF0000",
		"Purple": "#800080",
	}

	c.Set("colors", colors)
	return c.Render(http.StatusOK, r.HTML("colors/index.plush.html"))
}
<div class="list">
  <%= for (name, code) in colors { %>
      <%= partial("colors/details.plush.html", {colorName: name, hexCode: code}) %>
  <% } %>
</div>
<div>
  <span>Color: <%= colorName %></span>
  <span>Hex Code: <strong><%= hexCode %></strong></span>
</div>
<div class="list">
  <div>
    <span>Color: White</span>
    <span>Hex Code: <strong>#FFFFFF</strong></span>
  </div>
  <div>
    <span>Color: Maroon</span>
    <span>Hex Code: <strong>#800000</strong></span>
  </div>
  <div>
    <span>Color: Red</span>
    <span>Hex Code: <strong>#FF0000</strong></span>
  </div>
  <div>
    <span>Color: Purple</span>
    <span>Hex Code: <strong>#800080</strong></span>
  </div>
</div>

Helpers

Las parciales no son muy diferentes de las [plantillas](/documentación/capa frontal/plantillas) estándar en Buffalo. También incluyen todos los mismos helpers también.