2017-08-12 8 views
0

BackgroundModeプラグインがIonic 2 Docsに記載されているとおり正しくインストールされています。タイムアウトブロックリターンのコンソールでIonic 2のBackgroundModeプラグインが定義されていません

this.backgroundMode.on('enable').subscribe(()=>{ 
      console.log("BG Mode ENABLED"); 
      setTimeout(function(){ 
      try{ 
       console.log("BG Active"+this.backgroundMode.isActive()); 
      }catch(err){ 
       console.log(err.message); 
      } 
      },5000); 
     }); 

返しBG Mode ENABLEDが、第二の部分::次のコードを使用して

Cannot read property isActive of undefined

これを引き起こしているものを任意のアイデアは?

答えて

1

コールバックにfunction() {}構文を使用すると、関数内のコンテキスト(this)が変更されます。

this.backgroundMode.on('enable').subscribe(()=>{ 
     console.log("BG Mode ENABLED"); 
     setTimeout(() => { // Use arrow function here 
     try{ 
      console.log("BG Active"+this.backgroundMode.isActive()); 
     }catch(err){ 
      console.log(err.message); 
     } 
     },5000); 
}); 

Documentation on arrow functions:正しいコンテキストをキャプチャするためにarrow functionsを使用してください。 function() {}の構文との違いについては、this sectionを参照してください。

+0

ありがとう、私は私が戻ってきたときにそれを試してみる必要があります:)ちょうどドキュメントの読んだが、それは問題のようです – ldmo

関連する問題