2016-06-19 9 views
1

Ich bin neu ionischen und ich möchte eine einfache JSON-Daten in der Lage sein auf erweitern Listen innerhalb eines Arrays enthalten: Meine JSON-Datei sieht wie folgt aus:Json Listen in Arrays ionische Rückkehr in HTML-Seite

.factory('Purchase_orders', function($filter) { 
    var orders = [ 
    { 
     id: 1, 
     OrderTypeCoded: 'Order', 
     CurrencyCoded:'EUR', 
     OrderNumber:'1600000018', 
     OrderDate:'2016-04-23 16:04:00', 
     Identifier:'0001011843', 
     Name:'MULTIPREVE Prevenção e Segurança, Lda', 
     Street:'Rua 5 de Outubro, Lote 5', 
     PostalCode:'4715-238 Braga', 
     City:'Nogueira', 
     CountryCode:'PT', 
     TaxNumber:'PT505674629', 
     OrderLine: [ 
      { 
       LineNumber: '00010', 
       StandardProductCode: '10000005', 
       ProductDescription: 'VALV RANH BFV-N /114,3MM 59300F040N', 
       QuantityValue:'7', 
       UOMCoded:'UN', 
       PriceValue:'10.000', 
       AmountValue:'70.000', 
       LineState:'Normal', 
       price: 2 
      }, 
      { 
       LineNumber: '00020', 
       StandardProductCode: '10000005', 
       ProductDescription: 'PARAFUSO 15MM', 
       QuantityValue:'7', 
       UOMCoded:'UN', 
       PriceValue:'10.000', 
       AmountValue:'70.000', 
       LineState:'Normal', 
       price: 2 
      },  
     ], 
     items: [1, 2,3], 
     discount: 10, 
     total_items: 2, 
     total: 250, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-23 16:25:00' 
    }, 
    { 
     id: 2, 
     OrderTypeCoded: 'Order', 
     CurrencyCoded:'EUR', 
     OrderNumber:'1600000025', 
     OrderDate:'2016-04-29 16:04:00', 
     Identifier:'0001014583', 
     Name:'Motorrow, Lda', 
     Street:'Rua 5 de Outubro, Lote 5', 
     PostalCode:'4715-238 Braga', 
     City:'Nogueira', 
     CountryCode:'PT', 
     TaxNumber:'PT505674629', 
     OrderLine: [ 
      { 
       LineNumber: '00015', 
       StandardProductCode: '100875005', 
       ProductDescription: 'RODA DENTADA 4X4', 
       QuantityValue:'7', 
       UOMCoded:'UN', 
       PriceValue:'10.000', 
       AmountValue:'70.000', 
       LineState:'Normal', 
       price: 2 
      }, 
      { 
       LineNumber: '00025', 
       StandardProductCode: '102354005', 
       ProductDescription: 'BATERIA', 
       QuantityValue:'7', 
       UOMCoded:'UN', 
       PriceValue:'10.000', 
       AmountValue:'70.000', 
       LineState:'Normal', 
       price: 2 
      },  
     ], 
     items: [1, 2], 
     discount: 10, 
     total_items: 2, 
     total: 20, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-23 16:40:00' 
    }, 
    { 
     id: 3, 
     OrderNumber:'1600235018', 
     items: [3, 4], 
     discount: 50, 
     total_items: 2, 
     total: 50, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-22 16:04:00' 
    }, 
    { 
     id: 4, 
     OrderNumber:'1600458018', 
     items: [3, 4], 
     discount: 10, 
     total_items: 2, 
     total: 40, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-22 17:04:00' 
    }, 
    { 
     id: 5, 
     OrderNumber:'1600458011', 
     items: [3, 4], 
     discount: 10, 
     total_items: 2, 
     total: 40, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-20 09:34:00' 
    }, 
    { 
     id: 6, 
     OrderNumber:'1600458009', 
     items: [3, 4], 
     discount: 10, 
     total_items: 2, 
     total: 40, 
     payment: { 
     card: 20, 
     cash: 0, 
     receipt_number: '312' 
     }, 
     date: '2016-04-19 11:04:00' 
    } 
    ]; 

    return { 
    all: function() { 
     return orders; 
    }, 
    groupByDate: function() { 
     var group = {}; 
     for (var i = 0; i < orders.length; i++) { 
     var dateObj = new Date(orders[i].date); 
     var date = $filter('date')(dateObj, 'dd-MM-yyyy'); 

     orders[i].time = $filter('date')(dateObj, 'HH:mm'); 

     if (angular.isDefined(group[date])) { 

      group[date].push(orders[i]); 
     } else { 
      // add group 
      group[date] = [ 
      orders[i] 
      ] 
     } 
     } 

     return group; 
    }, 
    remove: function(orderId) { 
     orders.splice(orders.indexOf(orderId), 1); 
    }, 
    get: function(orderId) { 
     for (var i = 0; i < orders.length; i++) { 
     if (orders[i].id === parseInt(orderId)) { 
      return orders[i]; 
     } 
     } 
     return null; 
    } 
    }; 
}) 

So konnte ich die Liste der Bänder mit einer Wiederholung zurückgeben und die Band-ID übergeben, um einzelne Banddetails anzuzeigen.

In diesem Moment habe ich die Daten zeigen kann (Header), wie (Auftragsnummer, Kennung, Namen, etc ..)

I benötigt, um die Details des json (Orderline) zu zeigen, wie zum Beispiel: (Linenumber, StandardProductCode, etc ..)

um die Kopfdaten zuzugreifen:

<h5 class="padding-left">FORNECEDOR</h5> 
<ion-item class="item item-text-wrap"> 
    <p> {{ order.Identifier }} 
     <br>{{ order.Name }} 
     <br> {{ order.Street }} - {{ order.City }} 
     <br> {{ order.PostalCode }} 
    </p> 
</ion-item> 

Aber ich bin nicht in der Lage die Detaildaten zu zeigen (OrderLine.StandardProductCode). Habe ich eine Funktion vermisst?

image at app Ich dankte Bitte helfen Sie, ich bin neu in JS und IONIC

Danke

+0

Haben Sie eine Chance, meine Antwort zu sehen? Hat es für Ihren Fall geholfen? –

Antwort

0

von den Blicken von ihm. Ich denke, Sie brauchen eine Wiederholung, denn wenn Sie auf Primärschlüssel zugreifen können, können Sie auch auf den Bestellschlüssel zugreifen, aber der Bestellschlüssel hat ein Array und auf sein Element kann nicht direkt zugegriffen werden. Versuchen

<h5 class="padding-left">FORNECEDOR</h5> 
<ion-item class="item item-text-wrap"> 
    <p> {{ order.Identifier }} 
     <br>{{ order.Name }} 
     <br> {{ order.Street }} - {{ order.City }} 
     <br> {{ order.PostalCode }} 
    </p> 
    <p ng-repeat="item in order.OrderLine"> 
     LineNumber: {{item.LineNumber}} 
     StandardProductCode: {{item.StandardProductCode}} 
    </p> 
</ion-item> 

Nun ist diese item die verschachtelten Elemente in der order.OrderLine Array ist.

Hoffe, das hilft.