Suponha que primeiro verificamos se um recurso não está carregando assim:
@if (!countriesResource.isLoading()) {
<ul>
@for (
country of countriesResource.value();
track country.name.official
) {
<li>{{ country.name.official }}</li>
}
</ul>
Se o recurso não estiver carregando, mas ainda não tiver iniciado uma solicitação, existe uma maneira de fornecer um valor inicial para que ele countriesResource.value()
seja resolvido como um valor inicial?
Hoje não.
Mas tenha em mente que esta
resource
é uma API experimental e a equipe do Angular planeja lançar um RFC sobre o conceitoresource
na próxima semana.Sim, você pode fornecer um valor inicial para countriesResource.value() quando o recurso ainda não iniciou uma solicitação. Isso normalmente é obtido definindo um valor padrão para o recurso antes que a solicitação seja feita. Veja como você pode estruturar sua lógica dependendo de sua estrutura ou implementação:
Exemplo com valor padrão
Suponha que countriesResource suporte uma maneira de definir um valor inicial, como countriesResource.value ou um método semelhante:
Agora sua lógica de renderização permanece segura porque o valor inicial garante
Se o recurso não oferecer suporte nativo a um initialValue ou você não puder modificar o recurso diretamente, você poderá introduzir um valor de fallback dinamicamente:
E modifique sua renderização condicional:
}Resumo
Fornecer um valor inicial garante que sua UI não quebre enquanto espera por dados. A maioria das bibliotecas ou frameworks de manipulação de recursos fornece mecanismos para definir um estado inicial (initialValue, defaultValue, etc.) ou permite que você o manipule programaticamente usando fallbacks.