我已经为Semantic UI modal创建了一个指令。
默认情况下,Modal会将模态DOM元素从其初始位置(在指令内)移动到<body>
。一个简化的例子:
<body>
<div class="container">
<!-- <core-modal> -->
<div class="ng-isolate-scope">
<div class="ui modal">
<p>Here is my modal content</p>
</div>
</div>
</div>
</body>
$element.find('.ui.modal').modal();
变为:
<body>
<div class="container">
<!-- <core-modal> -->
<div class="ng-isolate-scope"></div>
</div>
<div class="ui dimmer">
<div class="ui modal">
<p>Here is my modal content</p>
</div>
</div>
</body>
core-modal
指令不再能够访问modal $元素,因为DOM元素不再包含在指令元素中。例如,通过以下方式关闭模态:
$element.find('.ui.modal').modal('hide');
在语义用户界面中似乎没有任何方式通过模板以声明方式关闭模态。
Angular.js中通常如何处理这种情况?我可以在编译指令之前应用.modal()
调用来触发DOM移动,然后在新位置编译吗?