角度代码未显示所有订单

用户名
/*------Factory method---------*/
factory.getAllOrders = function() {
       var orders = [];
       for(var i=0, len=customers.length; i<len; i++){
           if(customers[i].orders) {
               for(var j=0,ordersLen=customers[i].orders.length; j<ordersLen; j++){
                   return customers[i].orders;
               }
           }

       }

   };
  return factory;


/*-----------All orders controller--------------*/


myApp.controller('AllOrdersController',['$scope','$routeParams','customersFactory', function($scope,$routeParams,customersFactory) {
   $scope.orders = null;
   $scope.ordersTotal = 0.0;
   $scope.totalType;

   function init() {
       $scope.orders = customersFactory.getAllOrders();
   }

   function getOrdersTotal(){
       var total = 0;
       for(var i=0,len=$scope.orders.length; i<len; i++) {
           total += $scope.orders[i].total;
       }
       $scope.ordersTotal = total;
       $scope.totalType = ($scope.ordersTotal > 100) ? 'success' :'danger';
   }

   init();



]);

   <!-- View -->
   <div class="container">
   <div class="row">
       <div class="col-md-4">
           <h2>Customers Orders</h2>
br/>
           Filte:<input class="form-control" type="text" ng-model="orderFilter.product" />
           <br/>
           <br/>
       </div>
   </div>
/div>


div class="container">
   <div class="row">
       <div class="col-md-12">
           <table class="table table-responsive">
                <tr>
                    <th>Product</th>
                    <th>Total</th>
                </tr>
                <tr ng-repeat="order in orders | filter:orderFilter | orderBy:'name'">
                    <td>{{order.product}}</td>
                    <td>{{order.total | currency}}</td>
                 </tr>
                 <tr>
                    <td>&nbsp;</td>
                    <td>{{ordersTotal | currency}}</td>
                 </tr>
           </table>
       </div>
   </div>
/div>

/*--------------JSON FIle-----------------*/
var customers = [
        id: "1",
        joined: "2000-12-2",
        name: "Wali",
        city: "Dubai",
        orderTotal: "9.0765",
        orders: [{
            id: "1",
            product: "protein",
            total: "11.987"
        }]
    },
    {
        id: "2",
        joined: "2004-12-2",
        name: "Ali",
        city: "London",
        orderTotal: "20.0765",
        orders: [{
            id: "2",
            product: "bcca",
            total: "2.3456"
        }, {
            id: "3",
            product: "baseball",
            total: "4.3456"
        }]
    }];

我有一个控制器,可以显示json文件中的所有订单,并且已经通过工厂方法给出了所有订单的功能。我想打印表格以解析json文件中的数据并给出客户的所有订单,但是它仅显示第一个客户的订单,并且我想显示所有订单。

蜘蛛黄蜂42

您正在过早返回数据。线

return customers[i].orders;

仅在工厂内循环和外循环的第一遍通过后(i = 0,j = 0)才将控制权返回给控制器,这就是为什么只得到第一位客户的订单的原因。相反,如果要所有客户的订单,则应遍历客户并将其相应的订单推入已声明的订单数组中。这是该代码:

factory.getAllOrders = function() {
    var orders = [];
    for(var i=0, len=customers.length; i<len; i++){
        if (customers[i].orders) {
            ordersLen=customers[i].orders.length;
            for (var j=0; j<ordersLen; j++){
                orders.push(customers[i].orders[j]);
            }
        }
    }
    return orders;
};
return factory;

但是,这将返回对象数组,并且ng-repeater会认为存在重复项,因为在表面上它们都是Object。在这种情况下,建议使用track by选项。以下是修改后的ng-repeater代码:

<table class="table table-responsive">
    <tr>
        <th>Product</th>
        <th>Total</th>
    </tr>
    <tr ng-repeat="order in orders | filter:orderFilter | orderBy:'name' track by $index">
        <td>@{{order.product}}</td>
        <td>@{{order.total | currency}}</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td>@{{ordersTotal | currency}}</td>
    </tr>
</table>

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得所有未答复的订单

来自分类Dev

Qt Creator lang代码模型未显示所有警告

来自分类Dev

请求未显示网站代码的所有元素

来自分类Dev

显示日志未显示所有修订

来自分类Dev

如何按订单明细显示所有供应商?

来自分类Dev

为什么此代码未显示数据库中的所有值?

来自分类Dev

Git分支未显示所有分支

来自分类Dev

svn日志未显示所有修订

来自分类Dev

Solr查询未显示所有字段

来自分类Dev

While循环未显示所有值

来自分类Dev

表控件未显示所有行

来自分类Dev

SwiftUI列表未显示所有项目

来自分类Dev

输出未显示所有行

来自分类Dev

如何显示所有未缩小的窗口?

来自分类Dev

BaseAdapter未显示所有数据

来自分类Dev

输出未显示所有信息C ++

来自分类Dev

结果未显示所有条目

来自分类Dev

Django分页未显示所有页面

来自分类Dev

Java:队列未显示所有记录

来自分类Dev

MYSQL 未显示所有插入的值

来自分类Dev

滑块未显示所有图像

来自分类Dev

git diff 未显示所有更改

来自分类Dev

角度代码未执行

来自分类Dev

显示所有域代码(而不是结果)

来自分类Dev

角度滑块未显示

来自分类Dev

三角形未显示在页面上,代码适用于所有其他形状

来自分类Dev

在Woocommerce的管理员编辑订单页面上显示每个特定订单的所有可用送货方式

来自分类Dev

如果所有模型值都不为null则显示角度

来自分类Dev

Woocommerce:订单项未显示在订单电子邮件中