Facebook comment plugin Angularjs

后端 未结 1 691
粉色の甜心
粉色の甜心 2021-02-04 21:22

I am facing a strange error while adding the facebook comment plugin in my AngularJS app. The simplified structure of the app page is



        
1条回答
  •  梦毁少年i
    2021-02-04 22:07

    This is probably due to the fact that the FB functionality kicks in before Angular is able to change the data-href attribute.

    A directive seems like a good choice here:

    You basically need to create the comment-box after Angular can provide the correct URL.
    Because this involves asynchronous DOM manipulation, you need to use FB.XFBML.parse() to let FB process the comment-box once the data-href attribute is changed.

    The directive:

    .directive('dynFbCommentBox', function () {
        function createHTML(href, numposts, colorscheme) {
            return '
    ' + '
    '; } return { restrict: 'A', scope: {}, link: function postLink(scope, elem, attrs) { attrs.$observe('pageHref', function (newValue) { var href = newValue; var numposts = attrs.numposts || 5; var colorscheme = attrs.colorscheme || 'light'; elem.html(createHTML(href, numposts, colorscheme)); FB.XFBML.parse(elem[0]); }); } }; });

    The HTML:

    NOTE:
    The directive's scope will constantly watch for changes in the page-href attribute and update the comment-box. You can change this to suit your needs (e.g. also watch for changes in the other attributes or bind it once and stop watching).


    See, also, this short demo.

    0 讨论(0)
提交回复
热议问题