Angular.js指令将元素移动到另一个DOM位置

时间:2016-06-15 23:47:55

标签: angularjs semantic-ui angular-directive

我已经为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移动,然后在新位置编译吗?

0 个答案:

没有答案