使用指令作为 md-dialog

Using a directive as the md-dialog

我正在尝试将对话框代码包含在指令中。换句话说:

$mdDialog.show({ ..... template: '<my-directive></my-directive>', ..... })

当然,"my directive" 会是

<md-dialog>.....</md-dialog>

唯一的解决方案是在 "my-directive" 之外拥有对话框的完整框架,并直接导入 $mdDialog.show()。仅供参考,我试过 transclude=true 但它也不起作用。

如果您想知道造成这种混乱的原因,我尽量避免使用控制器。有什么建议吗?

谢谢!

我让它工作的唯一方法是在我的对话框模板选项指令周围添加一个 <md-dialog> 标签。

$mdDialog.show({ ..., template: '<md-dialog><my-directive></my-directive></md-dialog>' });

对话服务在编译模板之前尝试访问 md-dialog 元素来配置 ARIA 标签。 这就是代码无法工作的地方。