通过在ng-repeat中给出数组索引来循环特定数组

时间:2015-09-12 04:43:29

标签: angularjs angularjs-ng-repeat

更新

我的问题是如何通过提供数组索引data-ng-repeat="scenarios in input.model.Scenarios[1]"而不是循环所有数组data-ng-repeat="scenarios in input.model.Scenarios"来循环特定数组?

例如:

假设我有这样的数组

Scenario[0]
    SceId
    SceName
    Sections[0]
        LicencePlates[0]
            LpId
            LpName
        LicencePlates[0]
            LpId
            LpName
Scenario[1]
    SceId
    SceName
    Sections[0]
        LicencePlates[0]
            LpId
            LpName
        LicencePlates[0]
            LpId
            LpName
Scenario[2]
    SceId
    SceName
    Sections[0]
        LicencePlates[0]
            LpId
            LpName
        LicencePlates[0]
            LpId
            LpName

Angular Code

<div data-ng-app="cpa" data-ng-controller="InputController as input">
    <div data-ng-repeat="scenarios in input.model.Scenarios">
        <div data-ng-repeat="sections in scenarios.Sections">
            <div data-ng-repeat="licensePlates in sections.LicensePlates">
            </div>
        </div>
    </div>
</div>

对于上面,我循环遍历所有数组并获得结果。

<div data-ng-app="cpa" data-ng-controller="InputController as input">
    <div data-ng-repeat="scenarios in input.model.Scenarios[1]">
        <div data-ng-repeat="sections in scenarios.Sections">
            <div data-ng-repeat="licensePlates in sections.LicensePlates">
            </div>
        </div>
    </div>
</div>

但是对于上面的代码,当我使用Scenarios[1]时,它的循环场景[1]没有进入Sections[0]LicencePlates[0]

输出:

SceId : 2
SceName : Scenario2

实时我将父$ index作为数组索引传递

<div data-ng-repeat="scenarios in input.model.ParentScenarios" ng-init="ParentScenarioIndex = $index">

<div data-ng-repeat="scenarios in input.model.Scenarios[ParentScenarioIndex]">

1 个答案:

答案 0 :(得分:1)

第二种情况的问题是你想用ng-repeat循环一个对象。

data-ng-repeat="scenarios in input.model.Scenarios[1]"

在这种情况下, input.model.Scenarios [1] 是一个对象,ng-repeat将遍历它的属性值。例如:

// for 
var object = { a: 'aa', foo: 'bar' };
// and
data-ng-repeat="value in object"
// value will receive 'aa' and 'bar'

如果您只想显示第一个对象的数据,可以这样做:

<div data-ng-app="cpa" data-ng-controller="InputController as input">
    <div data-ng-init="scenario = input.model.Scenarios[1]">
        <div data-ng-repeat="sections in scenario.Sections">
            <div data-ng-repeat="licensePlates in sections.LicensePlates">
            </div>
        </div>
    </div>
</div>

我希望这个答案对你有所帮助。有关详细信息,您可以检查角度documentation是否为ng-repeat或给我发表评论。