永远不会调用嵌套的ng-repeat

时间:2016-10-25 11:27:00

标签: angularjs angularjs-directive nested angularjs-ng-repeat ng-repeat

我是角色的新手,我正在尝试访问变量中的一些数据,其中有一个标签嵌套在另一个标签中。 (我无法链接它,因为它很敏感)。无论如何,我正在尝试使用嵌套的ng-repeat来访问它,但是从不调用第二个ng-repeat,我的控制台也没有给我一个错误消息。这基本上就是它的样子。

dico = [
    { ...
    content : []
    },
    { ...
    content : []
    },
    ...
];

在检查现有问题(https://stackoverflow.com/questions/19206760/angular-nested-ng-repeat-failure#=& passing 2 $index values within nested ng-repeat)后,我不知道为什么我的部分无效。

  <span ng-repeat="toolbar in dico">
        <candidate-toolbar-review average="toolbar.average" labeltoolbar="{{toolbar.name}}">
             <span ng-repeat="field in toolbar.content" layout="row" layout-wrap layout-align="start center">
                <candidate-field-review labelfield="{{field.name}}" ng-model="field.value" my-model="field.checked">
                </candidate-field-review>
             </span>
        </candidate-toolbar-review>
    </span> 

在这个代码示例中,候选字段审查和候选工具栏审查都是指令,如果我评论第一个,第二个将正确输出。另外,第一个按预期印刷。

我尝试使用$ parent并跟踪$ index,但我真的不明白这些是如何工作的。我也尝试使用div而不是span或者根本不使用span(并且在候选工具栏和候选字段中包含ng-repeats)。我在这里错过了什么?谢谢!

编辑: 我用这些线代替了它。我仍然不知道为什么它不会反过来。

            <span ng-repeat="toolbar in dico">
                <candidate-toolbar-review ng-model="toolbar.average" labeltoolbar="{{toolbar.name}}" ng-click="showSmart=!showSmart">
                </candidate-toolbar-review>
                <span ng-repeat="field in toolbar.content">
                    <candidate-field-review labelfield="{{field.name}}" ng-model="field.value" my-model="field.checked">
                    </candidate-field-review>
                </span>
            </span>

1 个答案:

答案 0 :(得分:0)

我相信

<span ng-repeat="field in toolbar.content" layout="row" layout-wrap layout-align="start center">
永远不会调用

因为工具栏仅存在于<span ng-repeat="toolbar in dico">范围内。 candidate-toolbar-review 拥有它自己的控制器。 要将工具栏传递给 candidate-toolbar-review ,您需要这样的内容:

.directive('candidateToolbarReview', function() {
 return {
  restrict: 'E',
  transclude: true,
 scope: {
   toolbar : '@'
},

<candidate-toolbar-review toolbar="toolbar" average="toolbar.average" labeltoolbar="{{toolbar.name}}">
         <span ng-repeat="field in toolbar.content" layout="row" layout-wrap layout-align="start center">