最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

在angularjs中如何实现table增加tr的方法

来源:动视网 责编:小OO 时间:2020-11-27 19:41:25
文档

在angularjs中如何实现table增加tr的方法

需求。上面是一个table,运用了。<;tr ng-repeat=";rule in formData.ruleList track by $index";>;。循环显示。现在的一个需求是:需要在每行添加一个字段,不过不能在同一行显示,需要在下一行显示。我首先想到了直接加个,不过没有办法换行。在下面再加个也不行。只能依赖强大的angulajs,自定义指令。下面我们就开始。1 自定义指令;
推荐度:
导读需求。上面是一个table,运用了。<;tr ng-repeat=";rule in formData.ruleList track by $index";>;。循环显示。现在的一个需求是:需要在每行添加一个字段,不过不能在同一行显示,需要在下一行显示。我首先想到了直接加个,不过没有办法换行。在下面再加个也不行。只能依赖强大的angulajs,自定义指令。下面我们就开始。1 自定义指令;
 下面我就为大家分享一篇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">'
 + '<p ng-show="rule.type!==1">'
 + '<p class="col-xs-9 row">'
 + ' <input type="text" class="form-control" ng-model="rule.exprDesc"readonly ">'
+ '</p>'
+'</p>' + '</td>';
return detailHtml;
 }
 },
 templateUrl : 'libs/kbnTable/table_row/rule.html'
 };
 });

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

<td class="form-control-static">
 <p class="form-control-static">{{$index+1}}</p>
</td>
<td>
 <p class="form-control-static" ng-show="rule.type===1"
 style="text-align: -webkit-left;">   {{rule.rightVar.desc}}</p>
 <p ng-show="rule.type!==1">
 <p class="col-xs-9 row">
 <input type="text" class="form-control" ng-model="rule.rightVar.desc"
 readonly title="{{rule.rightVar.desc}}">
 </p>
 <p class="col-xs-3 ">
 <button class="btn btn-warning"
 ng-click="showRightVar(rule,'rightVar')">设置</button>
 </p>
 </p>
</td>
<td class="form-control-static" ng-show="formData.execType == 't02'">
 <p class="form-control-static" style="padding-top: 0;">
 <input type="text" class="form-control" ng-model="rule.score"
 title="{{rule.score}}" />
 </p>
</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循环部分,用我们新建的指令改写:

<p class="row">
 <p class="col-xs-12 row">
 <h4 class="col-xs-12">
 <b>表达式设置</b>
 </h4>
 </p>
 <p class="col-xs-12">
 <p class="row">
 <p 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>
 </p>
 <p class="col-xs-1">
 <button class="btn btn-info" ng-click="addRule()">新增</button>
 </p>
 </p>
 </p>

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

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在Vue中父子组件的数据传递、修改和更新是如何实现的(详细教程)

在vue2.0子组件中如何实现改变props值,并向父组件传值

在vue中如何实现单一组件下动态修改数据时的全部重渲染

文档

在angularjs中如何实现table增加tr的方法

需求。上面是一个table,运用了。<;tr ng-repeat=";rule in formData.ruleList track by $index";>;。循环显示。现在的一个需求是:需要在每行添加一个字段,不过不能在同一行显示,需要在下一行显示。我首先想到了直接加个,不过没有办法换行。在下面再加个也不行。只能依赖强大的angulajs,自定义指令。下面我们就开始。1 自定义指令;
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top