2016-06-06 6 views
0
  /*factory method for getting particular customers order*/ 
     factory.getCustomer = function(customerId) { 
       for(var i=0,len=customers.length ; i<len ; i++) { 
        if(customers[i].id === parseInt(customerId)){ 
         return customer[i]; 
        } 
       } 
       return {}; 
      }; 
     return factory(); 

     /*Controller*/ 
     myApp.controller('OrdersController',['$scope','$routeParams','customersFactory', function($scope,$routeParams,customersFactory) { 

      var customerId = $routeParams.customerId; 
      $scope.customer = null; 


      function init() { 
       $scope.customer = customersFactory.getCustomer(customerId); 
      } 



      init(); 


     }]); 

     /*View*/ 

     <div class="container"> 
      <div class="row"> 
       <div class="col-md-12"> 
        <h2>{{customer.name}}'s Orders</h2> 
        <table class="table table-hover"> 
         <tr> 
          <th>Product</th> 
          <th>Total</th> 
         </tr> 
         <tr ng-repeat="order in customer.orders"> 
          <td>{{ order.product }}</td> 
          <td>{{ order.total | currency }}</td> 
         </tr> 
        </table> 
       </div> 
      </div> 
     </div> 



     /*JSON FILE*/ 
          { 
      "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" 
      } 
      ] 
     }, 
     { 
      "id": "3", 
      "joined": "1980-11-2", 
      "name": "Zen", 
      "city": "Australia", 
      "orderTotal": "6.500", 
      "orders": [ 
      { 
       "id": "3", 
       "product": "chocolate", 
       "total": "6.4567" 
      } 
      ] 
     } 

Ich habe eine Kunden Tabelle, aus der wir die CRUD Funktionalität durchführen können, aber wenn ich auf den besonderen Kundenauftrag zu überprüfen, es mich auf die rechte Ansicht wird Umleitung über Routing, aber bestimmte Kundenaufträge werden nicht angezeigt., wie man bestimmte Kunden bestellen

kann jemand eine Lösung dafür vorschlagen?

Antwort

0

Nach Ihrer JSON-Daten ist die ID ein String, aber Sie es in eine ganze Zahl parsen, und unter Verwendung von ===, die nur dann, wenn der Wert und die Art der verglichenen Variablen Spiel übereinstimmen .

Sie müssen die if-Anweisung ändern, ist eine Option ist:

if (parseInt(customers[i].id) === parseInt(customerId)) 

Eine weitere Option sind:

if (customers[i].id == customerId) 

Und noch eine weitere Option ist mit Winkel des $ Filter-Service. Sie müssen es in die Fabrik injizieren, und als um den Client zu erhalten, können Sie verwenden:

var customer = $filter('filter')(customers, {id: customerId.toString()}, true); 
return customer.length === 1 ? customer[0] : null; 

Der toString Teil ist nur, weil Ihre JSON Daten ID als als String und die dritte Das Argument wird auf "true" gesetzt, um einen "like" -Filter zu verhindern (das Standard-$ -Filterverhalten gibt ID 10 beispielsweise auch zurück, wenn customerId 1 ist).

Verwandte Themen