ng-switch不使用嵌套的ng-repeat表

时间:2016-01-22 09:31:33

标签: angularjs templates angularjs-ng-repeat ng-switch

我在使用嵌套的'ng-repeat'和ng-switch指令基于提供的列定义和行数据(2个不同的JSON对象)呈现表时出错:

有没有办法使用'ng-repeat'和ng-switch来渲染表格单元而不使用包装元素。

Error: [$compile:ctreq] Controller 'ngSwitch', required by directive 'ngSwitchWhen', can't be found!

这是我的表格模板

<table id={{metaData.id}} name="{{metaData.name}}" class="{{metaData.classes}}">
<tbody>
    <tr ng-repeat="record in data">
        <td ng-repeat="col in metaData.columns" ng-switch on="col.type"
        ng-switch-when="index"> {{record.$index + 1}} </td>
    </tr>
</tbody>

周围的工作

我正在使用ng-if以下列方式动态呈现表格cellrows

<table id={{metaData.id}} name="{{metaData.name}}" class="{{metaData.classes}} vk-table" >
        <tbody>
            <tr ng-repeat="record in data | orderBy : sortBy : reverse">
                <td ng-repeat-start="col in metaData.columns" ng-if="col.type == 'index'"> {{$parent.$parent.$index + 1}}. </td>
                <td ng-if="col.type =='name'">{{record.name = [record.fname, record.mname, record.lname].join(' ') }}</td>
                <td ng-if="col.type =='date'">{{record[col.dataKey] = toDate(record[col.dataKey]) | date : 'mediumDate'}}</td>
                <td ng-if="col.type =='inMobile'">
                    <a href="tel:{{record[col.dataKey]}}">{{record[col.dataKey]}}</a>
                </td>
                <td ng-if="col.type =='email'">
                    <a href="mailto:{{record[col.dataKey]}}">{{record[col.dataKey]}}</a>

                </td>
                <td ng-if="col.type =='gender'">{{record[col.dataKey] == 'm' ? 'Male' : 'Female'}}</td>
                <td ng-if="col.type =='place'">{{record[col.dataKey].name}}</td>
                <td ng-repeat-end ng-if="!col.type">{{record[col.dataKey]}}</td>
            </tr>
        </tbody>
    </table>

如何在不使用其他元素的情况下使用ng-switch实现相同的输出?

1 个答案:

答案 0 :(得分:0)

ng-switch-when指令应该应用于应用ng-switch指令的元素的子元素。在您的情况下,您将它们应用于同一元素。

尝试(在tbody内)

sed