$mdDialog,取消时传递对象
$mdDialog, pass object on cancel
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 suggested in this comment
- 创建服务
- 在
onRemoving
函数上调用该服务
- 在该服务中保存您需要的任何对象。
- 在取消
$mdDialog.show
promise回调时,调用服务获取值。
其他选项是使用 preserveScope: true
并直接修改父级的范围,并在对话框取消后恢复值。
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 suggested in this comment
- 创建服务
- 在
onRemoving
函数上调用该服务 - 在该服务中保存您需要的任何对象。
- 在取消
$mdDialog.show
promise回调时,调用服务获取值。
其他选项是使用 preserveScope: true
并直接修改父级的范围,并在对话框取消后恢复值。