我可以在ng-repeat和mingle插值中使用ng-repeat吗?

时间:2015-04-23 15:00:44

标签: angularjs angularjs-ng-repeat angularjs-interpolate

我发现了一些其他人试图将ng-repeat置于ng-repeat中的问题,这似乎是可行的。但是为了完成我需要做的事情,我想我还需要将第一次ng-repeat中的插值放到第二次ng-repeat中。例如:

在:

<div class="mainDetails">
    <li ng-repeat="x in mainLinks" class="{{x.id}}"><a href="{{x.link}}"><img src = "{{x.icon}}" width = "15px" height = "15px">{{x.name}}</a></li>
</div>
<div class="secondDetails">
    <li ng-repeat="x in secondLinks"><a href="{{x.link}}"><img src = "{{x.icon}}" width = "15px" height = "15px">{{x.name}}</a>
    </li>
</div>
<div class="thirdDetails">
    <li ng-repeat="x in thirdLinks" class="{{x.id}}"><a href="{{x.link}}"><img src = "{{x.icon}}" width = "15px" height = "15px">{{x.name}}</a>
    </li>
</div>

这可能有点疯狂,特别是因为我实际上已经到了第十八&#34;。

所以这就是我的想法: 后:

<div ng-repeat="x in numOfMaps" class="{{x.count}}Details">
    <li ng-repeat="y in {{x.count}}Links" class="{{y.id}}"><a href="{{y.link}}"><img src="{{y.icon}}" width="15px" height="15px">{{y.name}}</a></li>
</div>

numOfMaps来自:

$scope.numOfMaps=[{
        count:"main"
    },{
        count:"second"
    },{
        count:"third"
    }];

然后,因为我需要更多&#34;细节&#34;我需要做的就是添加一个计数和繁荣:它也被添加到HTML中。不管怎么说,我觉得它很聪明..

该区域只是空白,没有显示任何内容。

JavaScript控制台中的错误: 错误:[$ parse:syntax] http://errors.angularjs.org/1.2.27/ $ parse / syntax?p0 = x.count&amp; p1 = is%20unexpected%2C%20expecting%20%5B%3A%5D&amp; p2 = 3&amp; p3 =%7B %7Bx.count%7D%7DLinks&安培; P4 = x.count%7D%7DLinks     在错误(本机)     在https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:6:450     at gb.throwError(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:170:252)     在gb.consume(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:171:181)     在gb.object(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:179:45)     在gb.primary(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:169:385)     在gb.unary(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:176:73)     at gb.multiplicative(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:175:310)     在gb.additive(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:175:170)     在gb.relational(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:175:34)     at gb.equality(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:174:400)     在gb.logicalAND(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:174:281)     在gb.logicalOR(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:174:151)     在gb.ternary(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:173:461)     在gb.assignment(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:173:211

1 个答案:

答案 0 :(得分:2)

不确定我是否正确地回答了您的问题,但这是您可以尝试的:

<div ng-repeat="name in ['main', 'first', 'second']" class="{{name}}Details">
    <li ng-repeat="y in this[name + 'Links']" class="{{y.id}}">
        <a href="{{y.link}}">
            <img src="{{y.icon}}" width="15px" height="15px">
            {{y.name}}
        </a>
    </li>
</div>
模板表达式中的

关键字this解析为当前范围。但是这个功能是AFAIK没有记录的。因此,最好将这些数组作为控制器属性并使用controller as syntax

相关问题