javascript - 如何使用自定义 Angular Directive(指令)包含子元素?

标签 javascript angularjs angular-directive

当前 HTML

<g class='entity'>
  <rect />
  <circle />
  ...
</g>

新的/所需的 HTML

<box>
  <rect />
  <circle />
  ...
</box>

简单指令

app.directive('box', ['$document', function ($document) {
    return {
        restrict : 'E',
        replace: true,
        template: "<g class='entity'></g>"
    };
}]);

DOM 中的结果

<g class='entity'>... everything missing here ... </g>

我希望将子子元素保留在适当的位置。

最佳答案

您正在寻找的称为嵌入。 如果您将 transinclude: true 添加到指令定义中,所有子元素都将保留。模板将仅覆盖 box 元素,但保留内部内容。

app.directive('box', ['$document', function ($document) {
return {
    restrict : 'E',
    replace: true,
    transclude: true,
    template: "<g class='entity'></g>"
};

}]);

关于javascript - 如何使用自定义 Angular Directive(指令)包含子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36425128/

相关文章:

javascript - 根 url 上的 Angular 隐藏 flexslider

Javascript并行运行两个循环

javascript - '...'在Javascript中是什么意思?

javascript - 使用按钮单击来修改 html 元素

AngularJs 引用错误 : $http is not defined

javascript - 使用 AngularJS 的 Web 应用程序 : Show error-page in case JavaScript deactivated in browser

javascript - typescript | JavaScript | Angular 2 : Dynamically Set @HostListener Argument

javascript - 从组件调用的 Angular 4 指令的多个实例弄乱了输入值

javascript - 在 Controller 事件上重新加载指令

javascript - 如何正确地将带有 JSON 数据的 jquery post 请求发送到 MVC 3,以便它将控制权交还给我的 Controller ?