Cómo utilizar el servicio Meta de Angular para obtener, agregar, actualizar y eliminar información

Introducción
El servicio Meta de Angular le permite obtener o configurar diferentes meta
etiquetas según la ruta activa actual en su aplicación.
Nota: El servicio Angular Meta está disponible para Angular 4 y versiones posteriores.
Repasemos su uso y los métodos disponibles.
Prerrequisitos
Si deseas seguir este artículo, necesitarás:
- Cierta familiaridad con elementos HTML
meta
. - Alguna familiaridad con los servicios angulares .
Este tutorial fue verificado con Node v16.2.0, npm
v7.15.1 y angular
v12.0.3.
Para utilizar el servicio Meta es necesario importarlo @angular/platform-browser
e inyectarlo en un componente o servicio.
import { Meta } from '@angular/platform-browser';
Con múltiples meta
etiquetas, puedes usar el addTags
método para configurarlas todas en la misma llamada.
A continuación se muestra un ejemplo en el que agregamos meta
etiquetas para una tarjeta de Twitter cuando se carga el componente:
constructor(private meta: Meta) { this.meta.addTags([ { name: 'twitter:card', content: 'summary_large_image' }, { name: 'twitter:site', content: '@alligatorio' }, // ... ]);}
Este código producirá el siguiente resultado en la página:
Outputmeta name="twitter:card" content="summary_large_image"meta name="twitter:site" content="@alligatorio"
Tenga en cuenta que tanto addTag
como addTags
pueden tomar un segundo argumento booleano para indicar si la etiqueta debe crearse incluso si ya existe.
Aquí, por ejemplo, la etiqueta se agregará dos veces:
constructor(private meta: Meta) { this.meta.addTags([ { name: 'twitter:site', content: '@alligatorio' }, { name: 'twitter:site', content: '@alligatorio' } ], true); }}
Este código producirá el siguiente resultado en la página:
Outputmeta name="twitter:site" content="@alligatorio"meta name="twitter:site" content="@alligatorio"
addTag
y addTags
le permitirá agregar nuevas meta
etiquetas.
De manera análoga a los métodos addTag
y addTags
, también existen los métodos getTag
y getTags
.
Consideremos una aplicación con la siguiente meta
etiqueta:
meta name="viewport" content="width=device-width, initial-scale=1"
He aquí un ejemplo de cómo getTag
se puede utilizar:
constructor(private meta: Meta) { const viewport = this.meta.getTag('name=viewport'); if (viewport) console.log(viewport.content);}
El contenido se enviará a la consola.
Outputwidth=device-width, initial-scale=1
getTag
toma una cadena de selector de atributos y devuelve un HTMLMetaElement
. getTags
también toma un selector de atributos, pero devuelve una matriz con potencialmente múltiples HTMLMetaElements
que coinciden con el selector.
UsandoupdateTag
Dada una nueva meta
definición de etiqueta y un selector, el updateTag
método actualizará cualquier etiqueta que coincida con el selector.
En el siguiente ejemplo, un tanto artificial, primero establecemos una meta
etiqueta con un content
of summary_large_image
y luego la actualizamos a solo summary
:
constructor(private meta: Meta) { this.meta.addTag( { name: 'twitter:card', content: 'summary_large_image' } ); this.meta.updateTag( { name: 'twitter:card', content: 'summary' }, `name='twitter:card'` );}
En una aplicación real, probablemente desearías actualizar meta
las etiquetas que están presentes globalmente en la aplicación, pero que deberían tomar valores diferentes según la ruta activa.
Usando removeTagyremoveTagElement
El removeTag
método toma una cadena para un selector de atributos y elimina la etiqueta.
Consideremos una aplicación con la siguiente meta
etiqueta:
meta charset="utf-8"
No es que quieras hacer esto alguna vez, pero aquí tienes cómo puedes eliminar la charset
meta
etiqueta:
constructor(private meta: Meta) { this.meta.removeTag('charset');}
Es removeTagElement
similar, pero toma un HTMLTagElement
selector directo en lugar de uno de cadena.
Aquí tenemos el mismo ejemplo, pero aquí primero obtenemos el charset
meta
elemento de etiqueta:
constructor(private meta: Meta) { const charsetTag = this.meta.getTag('charset'); if (charsetTag) this.meta.removeTagElement(charsetTag);}
Ambos enfoques eliminarán el meta
elemento.
Conclusión
En este artículo, aprendió a usar el servicio Meta de Angular para obtener, agregar, actualizar y eliminar meta
etiquetas.
Continúe su aprendizaje con nuestra guía sobre cómo actualizar el título de la página de forma declarativa usando ngrx
.
Deja una respuesta