javascript - 在 ngRepeat 生成的每个表格行下方添加表格行

标签 javascript html angularjs html-table angularjs-ng-repeat

我正在使用 ng-repeat 用数据填充表。这就是我的设置方式:

<tbody>
    <tr ng-repeat="client in clients | filter:x | filter:y |orderBy:predicate:!reverse | itemsPerPage: pageSize">
        <td><input id="option-{{client.id}}" type="checkbox" value=""></td>
        <td><a href="#/client/{{client.id}}">{{client.lastname}}</a></td>
        <td><a href="#/client/{{client.id}}">{{client.firstname}}</a></td>
        <td>{{client.status}}</td>
        <td>{{client.phone}}</td>
        <td><a href="mailto:{{client.email}}">{{client.email}}</a></td>
    </tr>
</tbody>

但我需要它在 ng-repeat 中创建的行下方添加一个表行。这可能吗?

最佳答案

您可以创建指令:

app.directive('addRow', function ($parse, $compile) {
    return {
        restrict: 'A',
        link: function (scope, elem, attrs) {
            var template = attrs.addRow ? $parse(attrs.addRow)(scope) : '<tr><td>-</td></tr>';
            elem.after(template);
            $compile(elem.contents());
        }
    }
});

它在每个元素后面添加传递的行模板。如果未传递模板,则使用默认模板。它还编译您的模板,因此您可以使用内部的所有 Angular 内容(例如 <td>{{variable}}</td> )。

使用示例:

<table>
    <tbody>
        <tr ng-repeat="item in [1,2,3,4]" add-row="'<tr><td>my template</td></tr>'">
            <td>{{item}}</td>
        </tr>
    </tbody>
</table>

这是 jsfiddle: http://jsfiddle.net/aartek/52b6e/

关于javascript - 在 ngRepeat 生成的每个表格行下方添加表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24393690/

相关文章:

javascript - Angular JS 中的 Controller 之间共享数据?

javascript - 您如何在 Mobile Safari (iPad) 上使用 Google Analytics/_trackEvent?

asp.net - 通过javascript从代码后面访问变量

javascript - 我们可以使用单个表单标签的操作发送两个 post 请求吗?

javascript - 是否可以经常更改浏览器文档模式?

javascript - 使用 PhantomJS 保存 SVG

javascript - 文本下方的CSS导航栏滑动线

javascript - toLocaleDateString() 不返回 dd/mm/yyyy 格式

javascript - AngularJS:$http.get方法下载pdf文件

javascript - 如何使用 angular-bootstrap-datetimepicker 设置默认日期?