angularjs应用多个指令相同的元素(angularjs apply multiple dire

2019-10-21 14:31发布

我有一个templateUrl指令用于显示定制的下拉菜单。 该指令追加DOM元素以元素节点,而无需更换它:

<cross-dropdown>

    <!-- First Directive Template Content Start-->
    <div></div>
    <!-- First Directive Template Content End-->

</cross-dropdown>

然后,我想创建一个又一个的验证,所以它可以追加更多的DOM元素融入到由第一指令插入的内容,这样的结果将是:

<cross-dropdown>

    <!-- First Directive Template Content Start-->
    <div></div>
    <!-- First Directive Template Content End-->

    <!-- Second Directive Template Content Start-->
    <div></div>
    <!-- Second Directive Template Content End-->

</cross-dropdown>

所以在这里我们先定义指令:

angular.module('someModule').directive('firstDirective'....
    templateUrl: '/4_Common/1_views/directives/dropdown.html',
    replace: false,
    priority:10,

在这里,第二个定义:

angular.module('someModule').directive('secondDirective'....
    templateUrl: 'some-template',
    transclude: true,
    replace: true,
    priority: 1

第二个指令模板:

<div>
    <span ng-transclude></span>
    <span>
        <span></span>
    </span>
</div>

所以,我可以移动通过第一指令生成的内容到NG-transclude跨度终于此内容:

<cross-dropdown>
    <div>
        <span ng-transclude>
            <!-- First Directive Template Content Start-->
                <div></div>
            <!-- First Directive Template Content End-->
        </span>

        <!-- Second Directive Template Content Start-->
            <span>
                 <span></span>
            </span>
        <!-- Second Directive Template Content End-->
    </div>
</cross-dropdown>

但我得到错误“多指令问模板”。 优先播放,并检查我不能修复这个错误后,我要问,如果我想要实现是可能的反正或破坏指令的规则。 请注意,我用元素有一个工作版本,编译这个DOM内容,而不是使用模板追加,但我想保持模板在一个单独的HTML文件。 提前致谢!

文章来源: angularjs apply multiple directives same element