1

我对这段代码有一个奇怪的行为

.controller('ContestantCreateCtrl',function($scope,CONFIG) {
       $scope.shareurl = 'https:'+CONFIG.site.absoluteUrl+'/';
})
.directive('btFbParse', function () {
        return {
            restrict:'A',
            link:function (scope, element, attrs) {
               console.log(scope.shareurl);//it works
               if(scope.facebookIsReady){
                    FB.XFBML.parse();
               }
            }
        };
 })

如果在视图中我设置

<div class="fb-like" data-href="https://my-dev.me/public/" data-width="120"  data-colorscheme="light" data-layout="standard" data-action="like" data-show-faces="true" data-send="false"></div>
<div bt-fb-parse></div>

有用

但如果在视图中我设置

<div class="fb-like" data-href="{{shareurl}}" data-width="120"  data-colorscheme="light" data-layout="standard" data-action="like" data-show-faces="true" data-send="false"></div>
<div bt-fb-parse></div>

我从 facebook api "/plugins/error/api?code=100&message=The+href+URL+must+be+absolute&hash=AQDVWDuDsG3_aVQh

我也试过

scope.$apply() 

在指令中,fb 喜欢工作,但角度显示错误:$digest 已经在进行中

不知道该往哪个方向转......

更新

_.defer(function(){
                        scope.$apply();
                        FB.XFBML.parse();
                    });

有用 :)

感谢https://stackoverflow.com/a/17958847/356380

4

0 回答 0