$ mdDialog,取消时传递对象

时间:2018-03-03 15:26:36

标签: angularjs angularjs-material

this.$mdDialog.show({
    controllerAs: 'ctrl',
    resolve: {
        product: product
    },
    controller:($mdDialog, product) => {
       close() => {
           $mdDialog.hide({productToUpdate: product}
       }
    },
    templateUrl: 'product-dialog.tmpl.html',
    parent: angular.element(document.body),
       clickOutsideToClose: true,
    }).then(productToUpdateOrDelete => { // on hide
       cb(productToUpdateOrDelete);
    }, () => { // on clickoutside or escape
       // Need to run my cb() here with the modified product
    });
}

当$ mdDialog被escape和clickOutside关闭时,我需要传递一个对象。

在文档中找不到任何相关内容。 https://material.angularjs.org/latest/api/service/ $ mdDialog

不可能吗?

1 个答案:

答案 0 :(得分:2)

无法与这些事件互动,请查看:No way to intercept MdDialog close events #3893

我的推荐是执行@camden_kid

this comment建议的内容
  1. 创建服务
  2. onRemoving功能
  3. 上调用该服务
  4. 保存您在该服务中需要的任何对象。
  5. 在取消$mdDialog.show承诺回调时,请致电服务以获取值。
  6. Check codepen as example

    其他选项是使用preserveScope: true并直接修改父级的范围,并在取消对话框后恢复该值。