2

I have a drag and drop function created. The dragged elements will be dropped to an array. The dragging tools are saved in one component. And there are 3 fields text, number and date will be dragged to this form. The inputs will be listened and then inserted to the dropzone array.I need to fetch the relevant index of the array and display. But i am unable to do it. Here are the code segments.

.html

 <div *ngFor='let tool of dropzone'>

            <label>{{dropzone.tool}}  </label>
<div>

component.ts

dropzone = [];

  move(draggedTool, dropzone): void {
    dropzone.push(draggedTool);  
    console.log(dropzone);

  }  

output

(3) ["Text", "Number", "Date"]
0: "Text"
1: "Number"
2: "Date"
length: 3
__proto__: Array(0)

How can i get the index of the dragged tool and display?

7
  • can you share more of your code specifically from draggable? Commented Oct 18, 2018 at 2:40
  • Do you want to display it inside the template where you ngFor? Commented Oct 18, 2018 at 2:41
  • @BonMacalindong yes Commented Oct 18, 2018 at 2:44
  • Do this in your *ngFor='let tool of dropzone; i = index' where i will be the index. Then inside the ngFor you can use <span>{{ i }}</span> Commented Oct 18, 2018 at 2:45
  • 1
    Sorry, you have to add let *ngFor='let tool of dropzone; let i = index' Commented Oct 18, 2018 at 3:05

2 Answers 2

6

Angular provides the index variable in ngFor so you can use it when iterating your array.

<div *ngFor='let tool of dropzone; let i = index'>
    <label>{{dropzone.tool}}</label>
    <label>{{ i }}</label>
<div>

There are other variables that the ngFor provides. You can read them from the official angular docs

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

Comments

1

Just as Bon Macalindong Pointed out correctly. Angular provides the index variable in ngFor so you can use it when iterating an array. But apart from declaring a variable with let in the *ngFor statement, you can also use the as keyword like so:

<div *ngFor='let tool of dropzone; index as i'>
    <label>{{dropzone.tool}}</label>
    <label>{{ i }}</label>
<div>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.