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 相关文章推荐
jQuery 学习 几种常用方法
Jun 11 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
JavaScript——DOM操作——Window.document对象详解
Jul 14 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
Mar 29 Javascript
JavaScript递归算法生成树形菜单
Aug 15 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
python中stdout输出不缓存的设置方法
2014/05/29 Python
python字典多条件排序方法实例
2014/06/30 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python爬豆瓣电影实例
2018/02/23 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python输入中文的实例方法
2020/09/14 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
实践单位评语
2014/04/26 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
大学开学感言
2015/08/01 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
java实现web实时消息推送的七种方案
2022/07/23 Java/Android