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

有可能吗

最佳答案

无法与这些事件进行交互,请检查:No way to intercept MdDialog close events #3893

我的建议是做@camden_kid中的this comment建议

  • 创建服务
  • onRemoving函数
  • 上调用该服务
  • 保存该服务中需要的任何对象。
  • 在取消$mdDialog.show promise 回调时,调用服务以获取该值。

  • Check codepen as example

    另一种选择是使用preserveScope: true并直接修改父级的作用域,并在取消对话框后恢复该值。

    关于angularjs - $ mdDialog,在取消时传递对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49085768/

    10-11 15:09