2017-09-13 15 views
0

FBアカウントを使用してログインした後、ユーザーのプロフィール画像をサイドバーに表示しようとしています。どうやら、データはFacebookから読み込まれますが、ページの初期化後に読み込まれます。したがって、私が望むように画像は表示されません。私が得るのは、空のサムネイルだけです。コンソールでFacebookのデータインポートによって「今すぐ評価された値が今すぐ評価されました」

私が取得:Value below was evaluated just now

私が正しくロードされますが、表示されません必要なすべてのデータを見ることができます下。 .htmlのセクションでは、 "スクリプトは、" 私が使用:

component.tsで
function getFBData() { 
    FB.api('/me', function (response) { 
     fbinfo = new Array(); 

     var im = document.getElementById("profileImage").setAttribute("src", "http://graph.facebook.com/" + response.id + "/picture?type=normal?callback=?"); 
    }); 
    public var id = response.id; 
    public var first_name = response.first_name; 
    public var last_name = response.last_name; 
    var email = response.email; 

} 

は私がconsole.log(this.userDetails);

+0

[this](https://stackoverflow.com/questions/2104949/how-to-reload-refresh-an-elementimage-in-jquery)を見てください。 jQを使用していても、DOMは変更を登録していない可能性があります。 –

+0

私の答えを見てください。角度を使用する(または反応が良い)場合、通常は直接設定された属性を使用しないでください。 – luschn

答えて

0

FB.apiを実装ファイルは非同期で、あなただけのコールバック関数で応答にアクセスすることができます。

function getFBData() { 
    FB.api('/me', (response) => { 
     document.getElementById("profileImage").setAttribute("src", "http://graph.facebook.com/" + response.id + "/picture?type=normal"); 
     const id = response.id, 
      first_name = response.first_name, 
      last_name = response.last_name, 
      email = response.email; 
    }); 
} 

また、矢印関数とconst(2017なので)でコードを更新しました。 :)

関連する問題