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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
Vuex,iView UI面包屑导航使用扩展详解
Nov 04 Javascript
vue微信分享插件使用方法详解
Feb 18 Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 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 动态添加记录
2009/03/10 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python 序列的方法总结
2016/10/18 Python
基于python实现KNN分类算法
2020/04/23 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
新加坡交友网站:be2新加坡
2019/04/10 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
入党思想汇报
2014/01/05 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
冬季施工防火方案
2014/05/17 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
python 中的@运算符使用
2021/05/26 Python
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL