3

im trying to access to array in object, but no success. read other posts and answers here, still, cant do it.

this is my obj: activeInvoice

balance_due:
"-72.26"
customer_id
:
"4"
customerpm_id
:
"1244"
date
:
"2017-03-02 04:23:18"
id:
"10334"
invoice_data:
"{"subtotal":72.26,"items":[{"storeid":"148","title":"MONTEBELLO","qty":1,"price":"1.9900","type":"payment"},{"storeid":"149","title":"Gold Elements - Store","qty":1,"price":"66.2900","type":"payment"},{"storeid":"860","title":"Gold Elements - Cart","qty":1,"price":"1.9900","type":"payment"},{"storeid":"1805","title":"Repeat the Heat 2","qty":1,"price":"1.9900","type":"payment"},{"storeid":"2867","title":"office","qty":1,"price":"0.0000","type":"payment"}]}"
invoice_type
:
"monthly_subscription"
status
:
"0"

this is my HTML

<table class="table dark">
  <thead>
  <tr>
    <th>#</th>
    <th>Item</th>
    <th>QTY</th>
    <th>Price (USD)</th>
  </tr>
  </thead>
  <tbody>
  <tr ng-repeat="invoice in activeInvoice.invoice_data">
    <td class="text-center"></td>
    <td class="text-center" ng-repeat="data in invoice.items">{{data.title}}</td>
    <td class="text-center"></td>
    <td class="text-center"></td>
  </tr>
  </tbody>
</table>

trying to access invoice_data items, and im getting [ngRepeat:dupes] Duplicates in a repeater error tried with track by, no success. thank you

4
  • 2
    use valid javascript and try to format your code... Commented Jun 1, 2017 at 11:01
  • 1
    activeInvoice.invoice_data is JSON object not array <tr ng-repeat="invoice in activeInvoice.invoice_data"> this line is not correct i guess Commented Jun 1, 2017 at 11:10
  • this is how i get it from DB Commented Jun 1, 2017 at 11:34
  • Hitmands can you please explane little more? Commented Jun 1, 2017 at 11:36

2 Answers 2

1

I think your problem is you have some record that are the same... so you need to track your repeat by some unique field... something like:

<tr ng-repeat="invoice in activeInvoice.invoice_data track by $index">
  <td class="text-center"></td>
  <td class="text-center" ng-repeat="data in invoice.items track by item.storeid">{{data.title}}</td>
  <td class="text-center"></td>
  <td class="text-center"></td>
</tr>

IF YOUR STOREID IS A UNIQUE PK (so you can't have 2 storeid equal) ...

Sign up to request clarification or add additional context in comments.

1 Comment

first of all, thank for you answer federico, unfortunately this didnt worked, i think my invoice_data is wrong formatted, i cant access it at all!
0

SOLVED IT. did json encode parse. thank you guys

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.