angularjs实现table增加tr的方法

需求:

上面是一个table,运用了

<tr ng-repeat="rule in formData.ruleList track by $index">

循环显示。现在的一个需求是:需要在每行添加一个字段,不过不能在同一行显示,需要在下一行显示。我首先想到了直接加个,不过没有办法换行。在下面再加个也不行。只能依赖强大的angulajs,自定义指令。下面我们就开始。

1 自定义指令

.directive(

'kbnTableRow',

function($compile) {

return {

restrict : 'A',

link : function(scope, element) {

element.after('<tr>');

function expressDescHtml() {

var detailHtml = '<td></td><td colspan="5">'

+ '<div ng-show="rule.type!==1">'

+ '<div class="col-xs-9 row">'

+ ' <input type="text" class="form-control" ng-model="rule.exprDesc"readonly ">'

+ '</div>'

+'</div>' + '</td>';

return detailHtml;

}

},

templateUrl : 'libs/kbnTable/table_row/rule.html'

};

});

2 rule.html是原来的里的内容

<td class="form-control-static">

<div class="form-control-static">{{$index+1}}</div>

</td>

<td>

<div class="form-control-static" ng-show="rule.type===1"

style="text-align: -webkit-left;">&nbsp&nbsp&nbsp{{rule.rightVar.desc}}</div>

<div ng-show="rule.type!==1">

<div class="col-xs-9 row">

<input type="text" class="form-control" ng-model="rule.rightVar.desc"

readonly title="{{rule.rightVar.desc}}">

</div>

<div class="col-xs-3 ">

<button class="btn btn-warning"

ng-click="showRightVar(rule,'rightVar')">设置</button>

</div>

</div>

</td>

<td class="form-control-static" ng-show="formData.execType == 't02'">

<div class="form-control-static" style="padding-top: 0;">

<input type="text" class="form-control" ng-model="rule.score"

title="{{rule.score}}" />

</div>

</td>

<td class="td-button" style="padding-left: 0; padding-right: 1px;">

<button class="btn btn-danger" ng-click="del(rule)">删除</button> <input

type="hidden" ng-model="rule.enable" />

</td>

<td class="td-button" style="padding: 8px 0;">

<button class="btn btn-danger" ng-click="disabledRule(rule, $event)">

<span ng-if="rule.enable == 0">启用</span> <span

ng-if="rule.enable == 1">禁用</span>

</button>

</td>

不需要改变,原来是什么,这里就写什么。

3 初始页面里的tr循环部分,用我们新建的指令改写:

<div class="row">

<div class="col-xs-12 row">

<h4 class="col-xs-12">

<b>表达式设置</b>

</h4>

</div>

<div class="col-xs-12">

<div class="row">

<div class="col-xs-10">

<table class="table text-center">

<tr>

<th ng-click="toggleAll()">

<i class="fa discover-table-open-icon"

ng-class="{ 'fa-caret-down': formData.on, 'fa-caret-right': !formData.on }">

</i>

</th>

<th width="45px">序号</th>

<th>左变量</th>

<th>操作符</th>

<th>右变量</th>

<th width="75px" ng-show="formData.execType == 't02'">分值</th>

<th colspan="2">操作</th>

<th></th>

</tr>

<tbody>

<tr ng-repeat="rule in formData.ruleList track by $index"

kbn-table-row class="discover-table-row"></tr>

</tbody>

</table>

</div>

<div class="col-xs-1">

<button class="btn btn-info" ng-click="addRule()">新增</button>

</div>

</div>

</div>

这样就可以完成我们的初始要求,不过可以在上面稍微改动下,会实现更棒的功能,下面一行可以自动收缩:

以上这篇angularjs实现table增加tr的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 angularjs实现table增加tr的方法 的全部内容, 来源链接: utcz.com/z/339831.html

回到顶部