2017-01-02 5 views
1

とコントローラ上の関数を呼び出す方法。私はダイアログから私のコントローラ内の関数を呼び出すことができますどのように私は角の材料を用いて、角度1.5 typescriptですベースのアプリを持っている角度マテリアル]ダイアログ

私の例では、それはthis.callBack(だ)私は呼び出すしたいユーザーは、コードが

public delete(condition: ModelModule.Condition): void { 
     var confirm = this.$mdDialog.confirm() 
      .title('delete condition!') 
      .textContent('are you sure ?') 
      .ariaLabel('delete') 
      .ok('Ok') 
      .cancel('Cancel'); 

     this.$mdDialog.show(confirm).then(function(answer) { 
      console.log("You decided to delete "+answer) 
     // how to call this function on my controller ???    
     this.callBack() 

     }, function() { 
      console.log("You decided cancel") 
     }); 
    } 
+0

ここでの問題は何ですか?それはあなたが、それはこれで失敗し – Fissio

+0

投稿コードで正常に動作しますように私にそれはそう:angular.js:14110例外TypeError:未定義 –

+0

のプロパティを読み取ることができません「コールバック」私は解決策に私の自己を発見しました。そうでない場合は、他の関数の呼び出し変数にコピー//独自のロケール変数に「これ」をコピーして、関数呼び出しを起動すると、この= VARことはできません。 ...残りの機能 –

答えて

0

スニペット

を確認していたときにあなたのthisfunctionではなく、あなたのコントローラを指します。 Typescriptにfunctionを使用せず、代わりに矢印関数を使用して、新しいthis-contextを作成することはありません。

public delete(condition: ModelModule.Condition): void { 
    var confirm = this.$mdDialog.confirm() 
     .title('delete condition!') 
     .textContent('are you sure ?') 
     .ariaLabel('delete') 
     .ok('Ok') 
     .cancel('Cancel'); 

    this.$mdDialog.show(confirm).then((answer) => { 
     console.log("You decided to delete " + answer); 
     this.callBack(); 
    },() => { 
     console.log("You decided cancel"); 
    }); 
} 

this in Typescript

関連する問題