J'ai utilisé le code ci-dessous pour ajouter ou mettre à jour des balises META lors de l'exécution dans angular5
import { Title ,Meta} from '@angular/platform-browser';
constructor( private meta:Meta)
{
this.meta.addTags([
{name: 'description', content: 'How to use Angular 4 meta
service'},
{name: 'author', content: 'talkingdotnet'},
{name: 'keywords', content: 'Angular, Meta Service'}
]);
this.meta.updateTag({ name: 'description', content: 'Angular 4 meta service'
});
}
méta service importé dans appmodule
Mais cela ne fonctionne pas (pas dans ma page source) .Personne, aidez-moi
Merci
Vous devez simplement changer:
this.meta.updateTag({ content: 'Angular 4 meta service'} , 'name="description"' );
DEMO DE TRAVAIL (Au lieu de vérifier la source de la page via l'élément inspect) La raison est expliquée ci-dessous
Votre méthode fonctionne également à 100%, vous pouvez le vérifier dans ma démo donnée.
Angular n'est pas servi du côté serveur, c'est pourquoi vous pouvez voir toutes les balises META via la source de vue de page, tout ce qui est modifié après le chargement de la page qui ne sera pas affiché dans la source de vue de page
Si vous souhaitez vérifier les balises META mises à jour, vous devez inspecter l'élément et y vérifier
Si vous souhaitez effectuer un rendu côté serveur, vous pouvez opter pour niversal angulaire
Veuillez essayer d'utiliser ce modèle
import { Component } from '@angular/core';
import { Title, Meta, MetaDefinition } from '@angular/platform-browser';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public constructor(public meta: Meta, public pageTitle: Title) {
pageTitle.setTitle("MySite.COM");
const keywords: MetaDefinition = {
name: "keywords",
content: "angular2, Java, javaEE, angular-universal"
}
const description: MetaDefinition = {
name: "description",
content: "This is a description"
}
this.meta.addTags([keywords, description]);
}
title = 'app';
}
Reportez-vous rl pour plus de mises à jour
Utilisez simplement addTags
. updateTags
est pour les balises existantes.
Avec juste addTags
this.meta.addTags([
{name: 'description', content: 'How to use Angular 4 meta service'},
{name: 'author', content: 'talkingdotnet'},
{name: 'keywords', content: 'Angular, Meta Service'}
]);
Vous obtenez les éléments suivants:
De plus, avec updateTag, notez le changement de description:
this.meta.addTags ([{name: 'description', content: 'How to use Angular 4 meta service'}, {name: 'author', content: 'talkdotnet'}, {nom: 'mots clés', contenu: 'Angular, Meta Service'}]);
this.meta.updateTag ({nom: 'description', contenu: 'Angular 4 meta service'});
Angular a une fonction de sécurité qui n'affichera que le contenu de la page fourni dans le fichier index.html. Une façon de voir cela est d'inspecter votre code sur la même page. Vous pourrez voir vos balises META et ses valeurs. Une autre solution consiste à utiliser Angular Universal qui est utile à des fins de référencement. En utilisant Angular universal, vous pourrez voir le contenu de votre page dans la source d'affichage.