Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angular 4中使用Meta删除标记_Angular_Tags_Meta Tags - Fatal编程技术网

如何在angular 4中使用Meta删除标记

如何在angular 4中使用Meta删除标记,angular,tags,meta-tags,Angular,Tags,Meta Tags,我可以用angular 4中的概念在index.html中动态设置标记。但是当我尝试删除标记时,它不会 移除,如何移除我之前添加的标记 以下是我尝试过的: 设置标记: import {Meta ,MetaDefinition } from '@angular/platform-browser'; @Component({ selector: 'app-share-video', templateUrl: './share-video.component.html', }) expor

我可以用angular 4中的概念在index.html中动态设置标记。但是当我尝试删除标记时,它不会 移除,如何移除我之前添加的标记

以下是我尝试过的: 设置标记:

import {Meta ,MetaDefinition } from '@angular/platform-browser';
@Component({
  selector: 'app-share-video',
  templateUrl: './share-video.component.html',
  })
export class ShareVideoComponent implements OnInit {
constructor(public metaServic:Meta){}
ngOnInit(){
    const ogtitle: MetaDefinition   =  { name: 'og:title', content: 'Grace' };
    const ogSitename: MetaDefinition = { name: 'og:site_name', content: 'My Favourite Albums'};
    const ogUrl: MetaDefinition = { name: 'og:url', content: 'https://angular.io/docs/ts/latest/api/platform-browser/index/Meta-class.html'};
    const ogdesc: MetaDefinition = { name: 'og:description', content: 'angular 4 share video description'};
    this.metaService.addTag(ogtitle);
    this.metaService.addTag(ogSitename);
    this.metaService.addTag(ogUrl);
    this.metaService.addTag(ogdesc);
  }        
ngOnDestroy() {
   this.metaService.removeTag("property='og:title'");
   this.metaService.removeTag("property='og:site_name'");
   this.metaService.removeTag("property='og:url'");
   this.metaService.removeTag("property='og:description'");
    }
}
在销毁方法中,我正在删除标记,但这些标记没有删除,如何删除标记?
接下来是:

您尝试使用的属性选择器是
名称
,而不是
属性

你必须使用

this.metaService.removeTag("name='og:title'");
this.metaService.removeTag("name='og:site_name'");
this.metaService.removeTag("name='og:url'");
this.metaService.removeTag("name='og:description'");
而不是

this.metaService.removeTag("property='og:title'");
this.metaService.removeTag("property='og:site_name'");
this.metaService.removeTag("property='og:url'");
this.metaService.removeTag("property='og:description'");

Angular 6+您需要用于
this.metaService.removeTag(“property='og:description')”
等。。。因为使用
this.metaService.removeTag(“name='og:title')不起作用。

所有标签的添加和删除都应使用“属性”,而不是“名称”。您正在使用“名称”添加,并尝试使用“属性”删除

固定代码:

  ngOnInit() {
    const ogtitle: MetaDefinition =  { property: 'og:title', content: 'Grace' };
    const ogSitename: MetaDefinition = { property: 'og:site_name', content: 'My Favourite Albums'};
    const ogUrl: MetaDefinition = { property: 'og:url', content: 'https://angular.io/docs/ts/latest/api/platform-browser/index/Meta-class.html'};
    const ogdesc: MetaDefinition = { property: 'og:description', content: 'angular 4 share video description'};
    this.metaService.addTag(ogtitle);
    this.metaService.addTag(ogSitename);
    this.metaService.addTag(ogUrl);
    this.metaService.addTag(ogdesc);
  }

  ngOnDestroy() {
   this.metaService.removeTag("property='og:title'");
   this.metaService.removeTag("property='og:site_name'");
   this.metaService.removeTag("property='og:url'");
   this.metaService.removeTag("property='og:description'");
  }
对于其他页面元数据,如
说明
作者
关键字
等,您可以使用“名称”

  • “name='description'”
  • “name='author'”
  • “name='twitter:description'”
  • “name='twitter:image'”
  • “name='twitter:image:alt'”
  • “name='keywords'”

您的电话号码是多少?你验证了吗?它在调用销毁方法。我在你的代码中没有看到任何问题。试试这个.meta.addTag({name:'og:title',content:'Grace'})。如果在removetag之前仍不工作,请尝试getTag并打印输出控制台日志。是的,添加标记工作正常,但此remove标记不工作您是否在removetag之前尝试getTag,但
删除(“属性='og:title')
也能正常工作这不是一个问题,只是有些元标记使用
名称
字段,有些使用
属性
。例如,所有OpenGraph标记都使用
property