当前位置: 首页 > news >正文

【AngularJS入门】用ng-repeat指令实现循环输出

循环输出列表很多项目在web服务端做,前端做好模版后后端写jsp代码,双方需要紧密合作,分清责任。有些项目由后端提供restful方法,前端用ajax调用自己循环,这种一般是大把的jquery拼字符串,太不直观,有人搞出了js模板,也没好到哪里去。

用AngularJS就爽多了,语法和JSP类似:

<!doctype html>
<html ng-app>
<head>
    <meta charset="utf-8">
    <title>ng-repeat directive</title>

    @*https://code.angularjs.org/*@

    <script src="https://code.angularjs.org/1.2.26/angular.min.js"></script>

    <style type="text/css">
        table.dataintable {
            margin-top: 10px;
            border-collapse: collapse;
            border: 1px solid #aaa;
            width: 100%;
        }

            table.dataintable th {
                vertical-align: baseline;
                padding: 5px 15px 5px 6px;
                background-color: #d5d5d5;
                border: 1px solid #aaa;
                text-align: left;
            }

            table.dataintable td {
                vertical-align: text-top;
                padding: 6px 15px 6px 6px;
                background-color: #efefef;
                border: 1px solid #aaa;
            }

            table.dataintable pre {
                width: auto;
                margin: 0;
                padding: 0;
                border: 0;
                background-color: transparent;
            }

            table.dataintable p {
                margin: 0 0 2px 0;
            }
    </style>
</head>
<body>
    <table class="dataintable" ng-controller="CartController" style="">
        <caption>我的购物车</caption>
        <tr>
            <th>序号</th>
            <th>商品</th>
            <th>单价</th>
            <th>数量</th>
            <th>金额</th>
            <th>操作</th>
        </tr>
        <tr ng-repeat="item in items">
            <td>{{$index + 1}}</td>
            <td>{{item.name}}</td>
            <td>{{item.price | currency}}</td>
            <td><input ng-model="item.quantity"></td>
            <td>{{item.quantity * item.price | currency}}</td>
            <td>
                <button ng-click="remove($index)">Remove</button>
            </td>
        </tr>
    </table>

    <script>
        function CartController($scope) {
            $scope.items = [
                { name: "雷柏(Rapoo) V500 机械游戏键盘 机械黄轴", quantity: 1, price: 199.00 },
                { name: "雷柏(Rapoo) V20 光学游戏鼠标 黑色烈焰版", quantity: 1, price: 139.00 },
                { name: "AngularJS权威教程", quantity: 2, price: 84.20 },

                { name: "雷柏(Rapoo) V500 机械游戏键盘 机械黄轴", quantity: 1, price: 199.00 },
                { name: "雷柏(Rapoo) V20 光学游戏鼠标 黑色烈焰版", quantity: 1, price: 139.00 },
                { name: "AngularJS权威教程", quantity: 2, price: 84.20 },

                { name: "雷柏(Rapoo) V500 机械游戏键盘 机械黄轴", quantity: 1, price: 199.00 },
                { name: "雷柏(Rapoo) V20 光学游戏鼠标 黑色烈焰版", quantity: 1, price: 139.00 },
                { name: "AngularJS权威教程", quantity: 2, price: 84.20 },

                { name: "雷柏(Rapoo) V500 机械游戏键盘 机械黄轴", quantity: 1, price: 199.00 },
                { name: "雷柏(Rapoo) V20 光学游戏鼠标 黑色烈焰版", quantity: 1, price: 139.00 },
                { name: "AngularJS权威教程", quantity: 2, price: 84.20 }
            ];

            $scope.remove = function (index) {
                $scope.items.splice(index, 1);
            }
        }
    </script>
</body>
</html>

ng-repeat指令生命在需要循环内容的元素上,items和控制器上的变量名对应,item是为数组中单个对象起的别名。$index可以返回当前引用对象的序号,从0开始,另外还有$first、$middle、$last可以返回布尔值,用于告诉你当前元素是否是集合中的第一个中间的最后一个元素。

搞定!

相关文章:

  • Linux下inotify监控文件夹状态,发生变化后触发rsync同步
  • 2016年开源巨献:来自百度的71款开源项目
  • 【MySQL使用技巧】JDBC连接
  • [pthon2.7+django1.2+sae]博客评论的异步提交
  • angular2 学习一 注解/Annotation
  • Android输入事件详解
  • HTML基础第十一讲---背景标志
  • Linux使用mount挂载samba共享
  • 由socket的accept说开去
  • CentOS 6.7安装Sqoop 1.4.6
  • SELinux上课内容
  • 浅谈Android编码规范及命名规范
  • 实现一些常用字符串处理函数
  • [摘录]第11章 造就优势谈判的驱动力
  • java调用斑马GK888t打印机(ZPL指令)
  • [PHP内核探索]PHP中的哈希表
  • css选择器
  • Fundebug计费标准解释:事件数是如何定义的?
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaScript服务器推送技术之 WebSocket
  • Js基础——数据类型之Null和Undefined
  • MQ框架的比较
  • Odoo domain写法及运用
  • Python实现BT种子转化为磁力链接【实战】
  • Redis学习笔记 - pipline(流水线、管道)
  • 彻底搞懂浏览器Event-loop
  • 技术胖1-4季视频复习— (看视频笔记)
  • gunicorn工作原理
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # C++之functional库用法整理
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (ibm)Java 语言的 XPath API
  • (pytorch进阶之路)扩散概率模型
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (小白学Java)Java简介和基本配置
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • **CI中自动类加载的用法总结
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C#C++]类CLASS
  • [Codeforces] probabilities (R1600) Part.1
  • [HUBUCTF 2022 新生赛]
  • [IE编程] 如何编程清除IE缓存
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [luogu4162 SCOI2009] 最长距离(最短路)
  • [NOI2005]月下柠檬树[计算几何(simpson)]
  • [NowCoder]牛客OI周赛3