AngularJS ng-repeat指令及Ajax的应用实例分析


Posted in Javascript onJuly 06, 2017

本文实例讲述了AngularJS ng-repeat指令及Ajax的应用。分享给大家供大家参考,具体如下:

ng-repeat 指令用于循环输出指定次数的 HTML 元素。集合必须是数组或对象。

定义:

<element ng-repeat="expression"></element>

说明:experssion表达式定义了如何循环集合。常用的如:x in records

下面通过一个例子,来说明ng-repeat如何绘制一个表格:

<div ng-app='mainApp' ng-controller='studentController'>
  <table border="0">
    <tr>
      <td>姓</td>
      <td><input type="text" ng-model='student.firstName'></td>
    </tr>
    <tr>
      <td>名</td>
      <td><input type="text" ng-model='student.lastName'></td>
    </tr>
    <tr>
      <td>名字</td>
      <td>{{student.fullName()}}</td>
    </tr>
    <tr>
      <td>科目</td>
      <td>
        <table>
          <tr>
            <th>名字</th>
            <th>标记</th>
          </tr>
          <tr ng-repeat='sub in student.subjects'>
            <td>{{sub.name}}</td>
            <td>{{sub.marks}}</td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</div>

表可以使用CSS样式设置样式。

<style>
  table, th , td {
    border: 1px solid grey;
    border-collapse: collapse;
    padding: 5px;
  }
  table tr:nth-child(odd) {
    background-color: #f2f2f2;
  }
  table tr:nth-child(even) {
    background-color: #ffffff;
  }
</style>

利用angularjs的ng-repeat指令绘制表格:

<script>
  var mainApp=angular.module('mainApp',[]); //定义一个名为mainApp的模块
  mainApp.controller('studentController',function($scope){
    $scope.student={
      firstName:'聂',
      lastName:'鹏飞',
      subjects:[
      {name:'物理',marks:73},
          {name:'化学',marks:90},
          {name:'数学',marks:68},
          {name:'英文',marks:85},
          {name:'生物',marks:77},
      ],
      fullName:function(){
        var studentObject;
        studentObject = $scope.student;
        return studentObject.firstName+' '+studentObject.lastName;
      }
    };
  });
</script>

效果:

AngularJS ng-repeat指令及Ajax的应用实例分析

上面例子表格中展示的数据也可以通过ajax请求从服务器中获取,然后利用ng-repeat指令插入到页面中,具体实现见下面代码:

<html>
<head>
<title>Angular JS Controller</title>
<script src="angularjs/angular-1.3.0/angular.min.js"></script>
<style>
  table, th , td {
    border: 1px solid grey;
    border-collapse: collapse;
    padding: 5px;
  }
  table tr:nth-child(odd) {
    background-color: #f2f2f2;
  }
  table tr:nth-child(even) {
    background-color: #ffffff;
  }
</style>
</head>
<body>
  <h2>AngularJS 表格应用示例</h2>
  <div ng-app='mainApp' ng-controller='studentController'>
    <table border="0">
      <tr>
        <td>姓</td>
        <td><input type="text" ng-model='student.firstName'></td>
      </tr>
      <tr>
        <td>名</td>
        <td><input type="text" ng-model='student.lastName'></td>
      </tr>
      <tr>
        <td>名字</td>
        <td>{{student.fullName()}}</td>
      </tr>
      <tr>
        <td>科目</td>
        <td>
          <table>
            <tr>
              <th>名字</th>
              <th>标记</th>
            </tr>
            <tr ng-repeat='sub in student.subjects'>
              <td>{{sub.name}}</td>
              <td>{{sub.marks}}</td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </div>
  <script>
    var mainApp=angular.module('mainApp',[]);
    mainApp.controller('studentController',function($scope,$http){
      $scope.student={
        firstName:'聂',
        lastName:'鹏飞',
        fullName:function(){
          var studentObject;
          studentObject = $scope.student;
          return studentObject.firstName+' '+studentObject.lastName;
        },
      };
      var url="data.txt";
      $http.post(url).success(function(response){
        $scope.student.subjects=response;
      })
    });
  </script>
</body>
</html>

说明:需要放在服务器环境中运行

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
Jul 21 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
Jan 15 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
jquery实现简单的无缝滚动
Apr 15 Javascript
C++中的string类的用法小结
Aug 07 Javascript
jQuery Validate插件实现表单强大的验证功能
Dec 18 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
Oct 23 Javascript
vue实现鼠标经过动画
Oct 16 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 #Javascript
Vue学习之路之登录注册实例代码
Jul 06 #Javascript
AngularJS中ng-class用法实例分析
Jul 06 #Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 #jQuery
JS图片轮播与索引变色功能实例详解
Jul 06 #Javascript
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 #jQuery
vue2.0 keep-alive最佳实践
Jul 06 #Javascript
You might like
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
python 制作本地应用搜索工具
2021/02/27 Python
Jar包的作用是什么
2014/03/30 面试题
自我评价的写作规则
2014/01/06 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
创先争优活动个人总结
2015/03/04 职场文书
公司搬迁通知
2015/04/20 职场文书
初中语文教学随笔
2015/08/15 职场文书
股东出资协议书
2016/03/21 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers