2016-11-24 9 views
0

aurelia jsの新機能です。ここでは、私はaurelia jsでコールバックをする必要があります。 ここで私が試したコード、 file.jsaureliaのコールバック関数js

this.commonFunctions.get_alrdyShrdUser(this.alrdyshardAry,function(err,result){ 
     if(!err){ 
      console.log("err,result",err,result); 
      this.sharedAlrdy = result; 
     }else{ 

     } 
    }); 

commonFunctions

get_alrdyShrdUser(docids,callback){ 
    this.httpValueConverter.call_http('sharing/users/list','POST',docids,'test') 
     .then(data => { 
     if(data.meta && data.meta.statusCode == 200) { 
     return callback(null,data.sharedUsers) 
     } 
    }); 
} 

はここですべてが正常に動作しますが、コールバック関数も値を返された、ですが、私はに値を割り当てることはできませんaurelia varibale(this.sharedAlrdy)。これはエラーをスローする未定義ののプロパティ 'sharedAlrdy'を設定できません。それは達成するための他の方法ですか?

答えて

0

これはAureliaとは関係ありません。 thisの典型的なJavaScriptの問題があります。

あなたはAureliaを使用しているので、私はこれがES6コードであり、矢印機能をサポートしていると想定しています。関数コールバックの矢印機能を使用して、あなたはthisをキャプチャするとの問題を抱えています矢印機能とthisの詳細については

this.commonFunctions.get_alrdyShrdUser(this.alrdyshardAry, (err, result) => { 
    if (!err) { 
     console.log("err, result", err, result); 
     this.sharedAlrdy = result; 
    } else { 

    } 
}); 

を、MDNを見てみましょう。

+1

ありがとう、それは動作します。 – sibi

+0

これをes6 formateに変更する方法$( '.fb_folder_container')。on( 'scroll'、e => { if($ this).scrollTop()+ $(this).innerHeight()> = $(this)[0] .scrollHeight){ this.loadMoreData(); } }); ' – sibi

+0

あなたは矢印関数を使用しているので、' this'は要素ではなく親スコープを参照します。この場合、要素の先頭に 'let $ element = $( '.fb_folder_container');'という変数を作成し、それをコード内で使用します。 '$ element.on( 'scroll'、e => {if($) = item.scrollTop()+ $ element.innerHeight()> = $ element.scrollHeight){this.loadMoreData();}); ' - そのようなもので、チェックする関数の中で' console.log() 'を実行できますその価値。ところで、私は通常、その機能を 'infinite-scroll'コンポーネントにカプセル化しているので、複数のページで再利用できます。 –

関連する問題