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 相关文章推荐
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
document.forms用法示例介绍
Jun 26 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
javascript轮播图算法
Oct 21 Javascript
微信小程序 动态绑定事件并实现事件修改样式
Apr 13 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 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 nginx 实时输出的简单实现方法
2018/01/21 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
我的梦想演讲稿500字
2014/08/21 职场文书
工作年限证明模板
2014/11/01 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python