2017-06-23 14 views
1

Ionic(Angular 2)を使用していますが、ダイアログプロミスで関数leaveGroup(group)にアクセスできないため、次のコードは動作していないようです。角度2 /イオンアクセスクラス関数

leaveGroupTapped(event, group) { 
this.dialogs.confirm("Are you sure you want to leave this group?", "Confirm") 
    .then(function (index) {  
     if (index == 0) { 
     //dialog dismissed - do nothing 
     } else if (index == 1) { 
     //OK call next function to remove the group 
     this.leaveGroup(group) //does not work ofcourse 
     } else { 
     //Cancel 
     } 
    }); 
} 

leaveGroup(group) { 
//Do some stuff here 
} 

この作品をどのように作成しますか?

ここおかげ

答えて

2

問題はthis.leaveGroup()の範囲を定義することにあります。私はここにES6の矢印機能を使用し、ここで

leaveGroupTapped(event, group) { 
    this.dialogs.confirm("Are you sure you want to leave this group?", "Confirm") 
    .then((index) => {  
     if (index == 0) { 
     //dialog dismissed - do nothing 
     } else if (index == 1) { 
     //OK call next function to remove the group 
     this.leaveGroup(group) //does not work ofcourse 
     } else { 
     //Cancel 
     } 
    }); 
} 

お知らせ:

は、次のようにコードを修正します。今度はthis.leaveGroup()の範囲を定義する必要があります。これは、あなたが参照している範囲内で機能します。

leaveGroup()は現在問題なく動作しているはずです。

矢印関数式は、関数 表現よりも短い構文を持っており、この独自のを結合しない、スーパー引数、または new.target - MDN

方法の詳細を理解するために矢印機能このレキシカルスコープ作品:

+0

はい、範囲が台無しにされましたが、それを修正する方法を知りませんでした気持ちを持っていました。答えとしてあなたを受け入れます。 – lordvlad30

+0

お手伝いします:) – Abrar