在使用ng-repeat创建的最后一行之后添加表行不起作用

时间:2014-02-04 11:38:27

标签: angularjs

以下内容不会添加表格行,只是在表格中添加标签。有什么想法吗?

HTML:

<div ng-app='app' ng-controller="Ctrl">
    <table>
        <tbody>
            <tr ng-repeat="row in rows" create-table>
                <td nowrap ng-repeat="value in row">{{value}}</td>
            </tr>
        </tbody>
    </table>
</div>

JavaScript的:

var app = angular.module('app', [], function () {
})

app.controller('Ctrl', function ($scope) {
    $scope.rows = [{
        title: 'One'
    }]
})

app.directive('createTable', function () {
    return function(scope, element, attrs) {
        if (scope.$last){
            // console.log(element[0]); - table row
            angular.element(element[0]).after(
                "<tr><td><label>Two</label></td></tr>"
            );
        }
    };
});

JSFiddle

如果检查表元素,您将看到: enter image description here

1 个答案:

答案 0 :(得分:3)

您是否有特别的原因想要使用指令执行此操作?

如果没有,你可以这样做:小提琴:http://jsfiddle.net/v27R4/

<div ng-app='app' ng-controller="Ctrl">
    <table>
        <tbody>
            <tr ng-repeat-start="row in rows">
                <td nowrap ng-repeat="value in row">{{value}}</td>
            </tr>
            <tr ng-repeat-end ng-if="$last">
                <td><label>Two</label></td>
            </tr>
        </tbody>
    </table>
</div>

有关ng-repeat- [开始/结束]的其他信息,请访问:http://docs.angularjs.org/api/ng.directive:ngRepeat

注意:小提琴中的CSS只是为了表明它在实际的表中