# Como adicionar manualmente conteúdos ao pluginOutlet após uma chamada ajax? E como re-renderizar ou atualizar um pluginOutlet?

**URL:** <https://meta.discourse.org/t/how-to-manually-add-contents-to-pluginoutlet-after-ajax-call-and-how-to-rerender-or-refresh-a-pluginoutlet/266640>\
**Category:** Development\
**Created:** [Maio 30, 2023, 7:37pm UTC](https://meta.discourse.org/t/how-to-manually-add-contents-to-pluginoutlet-after-ajax-call-and-how-to-rerender-or-refresh-a-pluginoutlet/266640 "2023-05-30T19:37:13Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Pixl8\_Nick](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pixl8_nick/32/297128_2.png) [@Pixl8\_Nick](https://meta.discourse.org/u/Pixl8_Nick)\
**Post date:** [Maio 30, 2023, 7:37pm UTC](https://meta.discourse.org/t/how-to-manually-add-contents-to-pluginoutlet-after-ajax-call-and-how-to-rerender-or-refresh-a-pluginoutlet/266640/1 "2023-05-30T19:37:13Z")

</div>

Olá, 👋

Sou novo em temas do Discourse e emberjs, e atualmente estou trabalhando em um tema que tem itens de navegação do site principal.  
Os itens de navegação json vêm de uma requisição ajax e preciso exibi-los em 2 locais.

1º local é `header-buttons:before`. Consegui fazer isso com `api.decorateWidget` e disparando os appEvents `site-header:force-refresh`.

```plaintext
ajax( settings.site_navigation_links_endpoint ).then((result) => {

	if (!result.length) {
		return;
	}

	result.map((customHeaderLinksArray) => {

		const anchorAttributes = {
			title : customHeaderLinksArray.title,
			href : customHeaderLinksArray.url,
			target : "self"
		};

		headerLinks.push(
			h(
				`li.custom-header-nav-item`,
				h( "a.custom-header-nav-item-link", anchorAttributes, customHeaderLinksArray.title )
			)
		);

	});

	headerNav = h("ul.custom-header-nav", headerLinks);

	if( settings.site_navigation_position == "inline" ) {
		api.decorateWidget("header-buttons:before", (helper) => {
			return headerNav;
		});
	}

	appEvents.trigger("site-header:force-refresh");

	// Para exibir no local (2º local, veja abaixo)
	// ...
	// ...
}

```

O 2º local é via pluginOutlet, `below-site-header`.  
Acredito que não posso fazer o mesmo que acima, usando `api.decorateWidget`, porque este é um pluginOutlet, não um widget(?).

Minhas perguntas são:

1. Como inserir manualmente o conteúdo ajax no pluginOutlet?
2. Gostaria também de saber como compilar um virtual-dom dinamicamente após minha chamada ajax? Por exemplo, a variável acima, `headerNav`, gostaria de obter uma marcação HTML compilada dela. Não tenho certeza de qual lib/função usar.
3. Se possível, como também renderizar novamente um pluginOutlet? Semelhante a `appEvents.trigger("site-header:force-refresh");`

Obrigado antecipadamente! 🙇‍♂️

---

_[View the full topic](https://meta.discourse.org/t/how-to-manually-add-contents-to-pluginoutlet-after-ajax-call-and-how-to-rerender-or-refresh-a-pluginoutlet/266640)._
