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 相关文章推荐
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
简单的js图片轮换代码(js图片轮播)
May 06 Javascript
百度地图api如何使用
Aug 03 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
举例说明JavaScript中的实例对象与原型对象
Mar 11 Javascript
详解javascript中的变量提升和函数提升
May 24 Javascript
微信小程序http连接访问解决方案的示例
Nov 05 Javascript
微信小程序实现商城倒计时
Nov 01 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
JavaScript Array.flat()函数用法解析
Sep 02 Javascript
JavaScript实现原型封装轮播图
Dec 27 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 Google的translate API代码
2008/12/10 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
php集成动态口令认证
2016/07/21 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
js作用域和作用域链及预解析
2019/04/11 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
Numpy 多维数据数组的实现
2020/06/18 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
外语专业毕业生自我评价分享
2013/10/05 职场文书
三年级音乐教学反思
2014/01/28 职场文书
学校交通安全责任书
2014/08/25 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
钳工实训报告总结
2014/11/04 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
公司开除员工通知
2015/04/22 职场文书
入队仪式主持词
2015/07/04 职场文书
详解MySQL的半同步
2021/04/22 MySQL