使用指令作为md对话框

时间:2015-08-12 10:25:41

标签: angularjs material-design angular-material

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

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

当然,“我的指示”将是

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

唯一的解决方案是将对话框的完整骨架置于“my-directive”之外,并直接导入$mdDialog.show()。仅供参考,我尝试了transclude=true,但它也没有用。

如果你想知道这个烂摊子的原因,我试图避免控制器。有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我实现此功能的唯一方法是在对话框模板选项的指令周围添加<md-dialog>标记。

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

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