2017-01-02 64 views
1

我有一個使用角材質的角度爲1.5的基於腳本的應用程序。如何使用角度材質對話框在控制器上調用功能

如何從對話框中調用控制器中的函數?

在我的例子是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:無法讀取未定義的屬性'callBack' –

+0

我找到了一個解決方案我的自我。啓動函數調用,將「this」複製到您自己的語言環境變量//複製到變量,否則調用其他函數不可能 var that = this; ...其餘的功能 –

回答

0

thisfunction,而不是你的控制器。不要在Typescript中使用function,而是使用箭頭函數,它不會創建新的上下文。

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

相關問題