# @outletArgs ahora están disponibles como argumentos de nivel superior

**URL:** https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678
**Category:** Development
**Tags:** dev-news
**Created:** [18 Junio, 2025 11:16 UTC](https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678 "2025-06-18T11:16:16Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [18 Junio, 2025 11:16 UTC](https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678/1 "2025-06-18T11:16:16Z")

</div>

En la [última versión](https://github.com/discourse/discourse/commit/3867c879ab80cdb0efddb450ca909fa4ae2594a8) de Discourse, los argumentos de outlet se pueden acceder como argumentos de nivel superior a sus componentes conectores.

En una plantilla, eso significa que `@outletArgs.foo` se puede reemplazar por `@foo`. En Glimmer Component JS, `this.args.outletArgs.foo` se puede reemplazar por `this.args.foo`.

El argumento `@outletArgs` antiguo todavía está disponible y no tenemos planes de deprecado. Por lo tanto, no hay prisa por actualizar ningún código existente. En el futuro, podemos introducir una regla de eslint personalizada para detectar y modernizar automáticamente los usos de `@outletArgs` y `this.args.outletArgs`.

El inspector de outlets de plugins ya se ha actualizado para mostrar los argumentos de la manera moderna:

 ![SCR-20250618-lajw](https://global.discourse-cdn.com/meta/original/4X/0/5/0/0502313ccab15a7650803f5de6e6638b37d69e9f.png)

Haremos un seguimiento con cambios en la documentación en un futuro próximo.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [18 Junio, 2025 11:17 UTC](https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678/2 "2025-06-18T11:17:23Z")

</div>

Mucho más consistente 👍🏻

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [19 Junio, 2025 02:16 UTC](https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678/3 "2025-06-19T02:16:40Z")

</div>

Perdona mi ignorancia, pero ¿dónde accedes a estos argumentos? ¿En un archivo .gjs de conector? ¿O en un renderInOutlet?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [19 Junio, 2025 06:48 UTC](https://meta.discourse.org/t/outletargs-are-now-available-as-top-level-arguments/370678/4 "2025-06-19T06:48:37Z")

</div>

Hay dos formas de renderizar un componente conector en un outlet de plugin.

Una es colocar tu componente en `/connectors/{nombre-del-outlet}/my-connector.gjs` (o una combinación de .js/.hbs). La otra forma es crear tu componente en otro lugar y llamar a `api.renderInOutlet("{nombre-del-outlet}", MyConnectorComponent)`

En ambos casos, los argumentos del outlet se pasarán a tu componente.

> [@Theme Developer Tutorial: 4. Using Outlets to insert and replace content](https://meta.discourse.org/t/theme-developer-tutorial-4-using-outlets-to-insert-and-replace-content/357799):
>
> Discourse uses the [Ember JS Framework](https://emberjs.com/) for its user interface. On top of Ember, Discourse provides a number of APIs to allow themes to customize the user interface. The most commonly-used API is Plugin Outlets. These outlets are positioned throughout Discourse core, and allow themes to render Ember Components inside them. Those components are given access to some contextual information called “outlet args”. Some outlets also “wrap” part of the core user interface, which allows themes to add the…
