Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有相同指令的AngularJS复合视图_Angularjs_Composite_Directive - Fatal编程技术网

具有相同指令的AngularJS复合视图

具有相同指令的AngularJS复合视图,angularjs,composite,directive,Angularjs,Composite,Directive,我有一个问题,关于AngularJS中的复合视图,这个问题很接近: 但是,我想知道是否有可能有一个指令包含同一指令的列表,如下所示: <mydirective name="thecontainer"> <mydirective name="a"/> <mydirective name="b"/> <mydirective name="c"/> </mydirective> 以下是模板: <div clas

我有一个问题,关于AngularJS中的复合视图,这个问题很接近:

但是,我想知道是否有可能有一个指令包含同一指令的列表,如下所示:

<mydirective name="thecontainer">
    <mydirective name="a"/>
    <mydirective name="b"/>
    <mydirective name="c"/>
</mydirective>
以下是模板:

<div class="box">
<div class="box-header">
    <div>{{ name }}</div>
</div>
<div class="box-container">
    <!-- display other boxes here-->
</div>
</div>

{{name}}
以下是视图中有趣的代码:

<box name="TOP" >
    <box name="SUB" >

    </box>
    <box name="SUB" >

    </box>
</box>

显然,缺少了一些东西来告诉子框“嘿,请在正确的位置向您的家长显示,请,家长,根据您的孩子数量调整您的大小”


David。

答案非常简单,没有ng transclude,angular无法正确解释innner HTML标记的内容。因此,正确的方法是通过添加ng transclude来更正模板,如下所示:

<div class="box">
    <div class="box-header">
        <div>{{ name }}</div>
    </div>
    <div class="box-container" ng-transclude>
        <!-- display other boxes here-->
    </div>
</div>

{{name}}

是的,您可以这样做。考虑嵌套的ng重复。这可能不是stackoverflow的问题,因为您还没有尝试过任何东西,也没有遇到特定的问题。是的,但我想不出您的示例的基本情况。编译后,您包含的指令将包含更多指令,直到最后一天。好的,我有答案,只是ng transclude必须包含在模板中。
<div class="box">
    <div class="box-header">
        <div>{{ name }}</div>
    </div>
    <div class="box-container" ng-transclude>
        <!-- display other boxes here-->
    </div>
</div>