• 【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可以返回布尔值,用于告诉你当前元素是否是集合中的第一个中间的最后一个元素。

    搞定!

  • 相关阅读:
    POJ3687拓扑排序+贪心
    POJ3687拓扑排序+贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3070矩阵快速幂简单题
    POJ3070矩阵快速幂简单题
    POJ3040给奶牛发工资
    POJ3040给奶牛发工资
    #Leetcode# 78. Subsets
    #Leetcode# 89. Gray Code
  • 原文地址:https://www.cnblogs.com/jhli/p/6113241.html
Copyright © 2020-2023  润新知