Angularjs 角度1.5+;“材质”对话框返回组件中的值

Angularjs 角度1.5+;“材质”对话框返回组件中的值,angularjs,angular-material,Angularjs,Angular Material,嗨,我正在尝试用自定义md对话框创建一个角度组件。对话框必须返回一个值,但我不知道如何访问回调中的组件var class TestDialog { constructor($mdDialog, $mdMedia) { 'ngInject'; this.$mdDialog = $mdDialog; this.$mdMedia = $mdMedia; this.objTmp={test:"test"}; } open(event) { th

嗨,我正在尝试用自定义md对话框创建一个角度组件。对话框必须返回一个值,但我不知道如何访问回调中的组件var

  class TestDialog {
  constructor($mdDialog, $mdMedia) {
    'ngInject';
    this.$mdDialog = $mdDialog;
    this.$mdMedia = $mdMedia;

    this.objTmp={test:"test"};
  }

  open(event) {
    this.$mdDialog.show({
      controller($mdDialog) {
        'ngInject';

        this.close = () => {
          $mdDialog.hide();
        }
        this.answer = (answer) => {
          $mdDialog.hide(answer);
        };
      },
      controllerAs: 'testModal',
      template: '<md-dialog aria-label="Test" ng-cloak flex-gt-md="60"><form><md-toolbar><div class="md-toolbar-tools" layout-align="space-between center"><h2>Test Modal</h2><md-button ng-click="testModal.close()">Close</md-button></div></md-toolbar><md-dialog-content><div class="md-dialog-content"><md-input-container flex-gt-sm="50"><label>Value</label><input ng-model="testModal.value" required></md-input-container></div></md-dialog-content><md-dialog-actions layout="row"><md-button ng-show="testModal.value" class="md-raised md-primary" ng-click="testModal.answer(testModal.value)">Añadir</md-button></md-dialog-actions></form></md-dialog>',
      targetEvent: event,
      parent: angular.element(document.body),
      clickOutsideToClose: true,
      fullscreen: this.$mdMedia('sm') || this.$mdMedia('xs')
    }).then(function(answer) { 
        console.log(answer);
        console.log(objTmp);
        this.objTmp=answer;
        console.log(objTmp);
    }, function() {});
  }
}

angular.module('app', ['ngMaterial'])  
  .component('testDialog', {
  template: '<md-button class="md-raised" aria-label="'+ 'Open Dialog" ng-click="testDialog.open($event)">'+
'Open Dialog'+
'</md-button>',  
  controllerAs: 'testDialog',
  controller: TestDialog
});
类测试对话框{
构造函数($mdDialog,$mdMedia){
"ngInject",;
此.$mdDialog=$mdDialog;
这。$mdMedia=$mdMedia;
this.objTmp={test:“test”};
}
公开(活动){
这是.mdDialog.show({
控制器($mdDialog){
"ngInject",;
this.close=()=>{
$mdDialog.hide();
}
this.answer=(answer)=>{
$mdDialog.hide(答案);
};
},
controllerAs:“testModal”,
模板:“Test ModalCloseValueAñadir”,
目标事件:事件,
父元素:angular.element(document.body),
单击外部以关闭:true,
全屏:this.$mdMedia('sm')| this.$mdMedia('xs'))
}).then(函数(答案){
控制台日志(应答);
控制台日志(objTmp);
this.objTmp=答案;
控制台日志(objTmp);
},函数(){});
}
}
角度模块('app',['ngMaterial']))
.component('testDialog'{
模板:“”+
“打开对话框”+
'',  
controllerAs:“testDialog”,
控制器:TestDialog
});
这是代码笔:


在angular material论坛上回答了我的问题,使用胖箭头功能

then((answer) => { ...... }

我不明白。你能提供一个有效的例子吗?谢谢