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 相关文章推荐
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 Javascript
深入学习JavaScript对象
Oct 13 Javascript
基于jQuery Ajax实现上传文件
Mar 24 Javascript
Bootstrap table分页问题汇总
May 30 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
jQuery插件ajaxFileUpload使用详解
Jan 10 Javascript
详解vue axios中文文档
Sep 12 Javascript
使用原生js封装的ajax实例(兼容jsonp)
Oct 12 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 09 Javascript
Vue.js中使用Vuex实现组件数据共享案例
Jul 31 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
mysql5写入和读出乱码解决
2006/11/25 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
js数组的操作详解
2013/03/27 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python轻松实现代码编码格式转换
2015/03/26 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python中property函数用法实例分析
2018/06/04 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python设置环境变量的作用和实例
2019/07/09 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
Python的pygame安装教程详解
2020/02/10 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
《散步》教学反思
2014/03/02 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
详解Python牛顿插值法
2021/05/11 Python
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android