Angularjs动态更新Facebook og元标记

时间:2017-11-22 14:51:37

标签: angularjs facebook facebook-opengraph meta-tags open-graph-protocol

我想动态更新facebook og meta标签。我找到了一个有角度的服务:

angular.module('App.Common')
.service('MetadataService', ['$window', function($window){
    var self = this;
    self.setMetaTags = function (tagData){
        $window.document.ogdescription = tagData.ogdescription;
        $window.document.ogname = tagData.ogname;
        $window.document.ogimage = tagData.ogimage;
 }; 
}]);

在我的模板文件中,我将其设置为:

<meta property="og:title" name="ogname" content=""/>
<meta property="og:description" name="ogdescription" content=""/>
<meta property="og:image" name="ogimage" content=""/>

在我的一个控制器上:

angular.module('App.Common')
.controller('ArticleController', function (MetadataService){
    MetadataService.setMetaTags({
        ogname : 'some title',
        ogdescription : 'some desc',
        ogimage : 'some image'
    });
});

这不会更新元标记。我不知道我哪里错了。请原谅我的英语。

由于

1 个答案:

答案 0 :(得分:-1)

尝试使用id属性

<meta property="og:title" id="ogname" content=""/>
<meta property="og:description" id="ogdescription" content=""/>
<meta property="og:image" id="ogimage" content=""/>

像这样改变方法

self.setMetaTags = function (tagData){
    $window.ogdescription.content = tagData.ogdescription;
    $window.ogname.content = tagData.ogname;
    $window.ogimage.content = tagData.ogimage;
};