我试图在ng-repeat循环中包含ng-swicth

时间:2016-10-03 18:06:48

标签: angularjs

我有一个菜单可以浏览我的数据模型:

            <div class="nav">
                <span us-spinner ng-if="vm.dataReady == false"></span>
                <ul class="nav">
                    <li ng-repeat="section in vm.data"
                        ng-class="{'active':vm.activePersonalDataTab == $index}"
                        ng-click="vm.personalDataTabClick($index)">
                        {{section.name}}
                    </li>
                </ul>
            </div>

数据就像这样一个简单的对象:

personalData: [
                { name: "Общие сведения", src: "CommonInfo/GetCommonInfo", dataType: 0, data: null },
                { name: "Биография", src: null, subNames: [
                        { name: "Сведения об образовании", src: "EducationInfo/Read", dataType: 1, data: null },
                        { name: "Сведения о службе в вооруженных силах", src: "MilitaryServiceInfo/Read", dataType: 1, data: null },
                        { name: "Сведения о семейном положении", src: "FamilyInfo/Read", dataType: 1, data: null },
                        { name: "Сведения о судимости", src: "ConvictionInfo/Read", dataType: 1, data: null }          
                ]},
                { name: "Занимаемые должности", src: "PersonPosition/Read", dataType: 1, data: null },
                { name: "Поощрения и взыскания", src: "PromotionRecovery/Read", dataType: 1, data: null },
                { name: "Публикации в СМИ", src: "PublicationInfo/Read", dataType: 1, data: null },
                { name: "Сведения о смерти", src: "DeathInfo/GetDeathInfo", dataType: 0, data: null }
            ], //dataType: 0 - list, 1 - table

其中'src'是API控制器的名称。我的服务使用它们获取数据,然后将其写入'data'属性。现在我正在尝试使用 ng-repeat 循环浏览所有数据项,并使用 ng-switch 来检查它是否是我在菜单中选择的一个(所选菜单) index存储在vm.activePersonalDataTab中:

<div ng-repeat="section in vm.data" ng-init="sectionIndex=$index" ng-switch="vm.activePersonalDataTab">
<div ng-switch-when="{{sectionIndex}}" ng-switch="vm.data[sectionIndex].dataType">
    <div ng-switch-when="0" class="info">
        <ul>
            <li ng-repeat="item in vm.dict[sectionIndex]" class="{{vm.getLiClass($index)}}"
                ng-init="field = vm.getFieldValue(sectionIndex,$index)">
                <div class="my-label">{{vm.getFieldName(sectionIndex,$index)}}&nbsp;</div>
                <div class="my-info">{{field.type === 1 ? (field.value | date:'dd.MM.yyyy') : field.value}}&nbsp;</div>
            </li>
        </ul>
    </div><!--Если данные представлены простым списком-->
    <div ng-switch-when="1" class="table"></div>not yeat<!--Если данные представлены таблицей-->
    <div ng-switch-default class="bunch">not yeat</div><!--Если данные представлены набором таблиц-->

</div>

如果我在 ng-switch-when =“{{sectionIndex}} 中将 {{sectionIndex}} 更改为 0 ,则此功能正常。我想用ng-repeat中的索引来自动化这部分代码。

0 个答案:

没有答案