2017-01-02 79 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

相关问题