Angular.js中用ng-repeat-start实现自定义显示


Posted in Javascript onOctober 18, 2016

前言

众所周知AngularJS 中可以使用 ng-repeat 显示列表数据,这对大家来说应该都不陌生了, 用起来很简单, 也很方便, 比如要显示一个产品表格, Controller 的 Javascript 代码如下:

angular.module('app', [])
.controller('MyController', MyController);

MyController.$inject = ['$scope'];
function MyController($scope) {
 // 要显示的产品列表数据;
 $scope.products = [
  {
   id: 1,
   name: 'Product 1',
   description: 'Product 1 description.'
  },
  {
   id: 2,
   name: 'Product 3',
   description: 'Product 2 description.'
  },
  {
   id: 3,
   name: 'Product 3',
   description: 'Product 3 description.'
  }
 ];
}

对应的 HTML 视图代码如下:

<table class="table">
  <tr>
   <th>id</th>
   <th>name</th>
   <th>description</th>
   <th>action</th>
  </tr>
  <tr ng-repeat="p in products">
   <td></td>
   <td></td>
   <td></td>
   <td><a href="#">Buy</a></td>
  </tr>
 </table>

运行效果图:

Angular.js中用ng-repeat-start实现自定义显示

可是如果全部页面都是每个产品占一行来显示, 未免太枯燥了, 比如用户希望这样子自定义显示:

Angular.js中用ng-repeat-start实现自定义显示

每个产品占表格的两行, 这样的效果用 ng-repeat 就没办法实现了。 不过 AngularJS 提供了 ng-repeat-start ng-repeat-end 来实现上面的需求, ng-repeat-start ng-repeat-end 的语法如下:

<header ng-repeat-start="item in items">
  Header 
 </header>
 <div class="body">
  Body 
 </div>
 <footer ng-repeat-end>
  Footer 
 </footer>

假设提供了 ['A','B'] 两个产品, 则生成的 HTML 结果如下:

<header>
  Header A
 </header>
 <div class="body">
  Body A
 </div>
 <footer>
  Footer A
 </footer>
 <header>
  Header B
 </header>
 <div class="body">
  Body B
 </div>
 <footer>
  Footer B
 </footer>

了解了 ng-repeat-startng-repeat-end 的用法之后, 上面要求的界面就很容易实现了, 代码如下:

<table class="table table-bordered">
  <tr ng-repeat-start="p in products">
   <td></td>
   <td rowspan="2"><a href="#">Buy</a></td>
  </tr>
  <tr ng-repeat-end>
   <td></td>
  </tr>
 </table>

总结

以上就是Angular.js中利用ng-repeat-start实现自定义显示的全部内容,希望本文的内容对大家学习或者使用Angular.js能有所帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js获取提交的字符串的字节数
Feb 09 Javascript
获取客户端电脑日期时间js代码(jquery)
Sep 12 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 Javascript
JavaScript中常见的八个陷阱总结
Jun 28 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
Sep 26 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 #Javascript
微信小程序 教程之WXSS
Oct 18 #Javascript
微信小程序 教程之引用
Oct 18 #Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 #Javascript
微信小程序 教程之事件
Oct 18 #Javascript
微信小程序 教程之模板
Oct 18 #Javascript
微信小程序 教程之列表渲染
Oct 18 #Javascript
You might like
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
Django返回json数据用法示例
2016/09/18 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python线程threading模块用法详解
2020/02/26 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
python实现126邮箱发送邮件
2020/05/20 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
2014年社区庆元旦活动方案
2014/03/08 职场文书
高中军训感言600字
2014/03/11 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
个人自查自纠材料
2014/10/14 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS