Как динамически добавлять / удалять / обновлять метатеги из углового приложения - PullRequest
0 голосов
/ 04 ноября 2019

Я создал MetaService, который будет создавать все мета-теги из API выборки.

Ниже приведен код,

  public addMetaTags(seoData): void {
    this.meta.addTag({ name: 'description', content: 'example description' });
    this.meta.addTag({ property: 'og:title', content: 'example title' });
    this.meta.addTag({ property: 'og:description', content: 'example og:description' });
    this.meta.addTag({ property: 'og:site_name', content: 'example og:site_name' });
  }

Но проблема в том, когда я перехожу со страницы А наСтраница B. Уже созданные теги не очищены.

Как проверить, уже создан ли MetaTag, и соответствующим образом обновить их?

1 Ответ

1 голос
/ 04 ноября 2019

Это документация: https://angular.io/api/platform-browser/Meta

Вы можете позвонить this.meta.getTag(key) для проверки.

Вы можете сделать это для обновления:

this.meta.updateTag({ itemprop: 'name', content: subject });
this.meta.updateTag({ itemprop: 'description', content: desc });
this.meta.updateTag({ name: 'twitter:title', content: subject });
this.meta.updateTag({ name: 'twitter:description', content: desc });
this.meta.updateTag({ property: 'og:title', content: subject });
this.meta.updateTag({ property: 'og:description', content: desc });

Если вашприложение применяет функцию SSR, вам может не понадобиться updateTag, нет необходимости обновлять теги на стороне клиента.

...