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 のように動作しますが、Angular でエラーが表示されます: $digest は既に進行中です

どっちを向いたらいいのかわからない……。

アップデート

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

できます :)

https://stackoverflow.com/a/17958847/356380に感謝

4

0 に答える 0