0

This is the array

[
   {
      "TO":"[email protected]",
      "FROM":"[email protected]",
      "SUBJECT":"subject 1",
      "NAME":"Oluwaseyi Oluwapelumi",
      "MESSAGE-DATE":[
         [
            "Hey eniayomi heeyyy",
            "2019-12-03 20:49:07"
         ]
      ]
   },
   {
      "TO":"[email protected]",
      "FROM":"[email protected]",
      "SUBJECT":"Thanks for contacting R",
      "NAME":"",
      "MESSAGE-DATE":[
         [
            "Thanks for contacting me! Once i check my email, i shall definitely get back.",
            "2019-08-18 19:48:10"
         ],
         [
            "will check it.",
            "2019-08-18 19:48:10"
         ]
      ]
   }
]

i need it to display on the angular frontend.

this is the mail.component.html file

<div class="card-body p-0">
                      <div class="float-left" style="width: 330px; height: 430px; border-right: 1px solid #dad9d9; overflow-x: hidden; overflow-y: auto;">
                          <div class="p-2 profile-card" style="width: 315px; height: 100px; border-bottom: 1px solid #dad9d9;" *ngFor="let mail of dataservice.data; let i = index;" (click)="viewMail(mail.MESSAGE_DATE,mail.FROM,mail.NAME,mail.DATE,i)" [ngClass]="{'highlight': selectedIndex === i}">
                              <div class="row">
                                  <div class="col-md-3 pt-2">
                                      <div class="rounded-circle shadow" style="background-image: url('images/avt.jpg'); background-repeat: round; height: 70px; width: 70px;">
                                          <div style="height: 20px; width: 20px; border: 3px solid white;" class="rounded-circle bg-success"></div>
                                      </div>
                                  </div>
                                  <div class="col-md-7 p-0 pl-3 pt-4" style="line-height: 12px;">
                                      <p style="font-size:18px;"><b>{{mail.FROM}}</b></p>
                                      <p style="font-size:13px;">{{mail.NAME }}.</p>
                                  </div>
                                  <div class="col-md-2 p-0 pt-3" style="line-height:11px;">
                                      <p class="text-secondary" style="font-size:12px;">20m <i class="fa fa-star fa-md" aria-hidden="true"></i></p>
                                  </div>
                              </div>
                          </div>

this is the data.service.ts file

  mail_det() {
    this.message = 'Welcome!';
    console.log(this.message);
    this.staff_email=sessionStorage.getItem('email');
    console.log(this.staff_email)

    this.http.get(this.domain_protocol + this.f_domain_name+'/api/v1.0/get_user_detail/?id='+this.staff_email)
      .subscribe((res) => {
      this.data = res
      console.log(this.data)
    })
  }

this is the mail.component.ts file

  viewMail(mail, mailer, mailee, user_date, _index: number) {
    this.router.navigate(['mail/'+ mailer])
    console.log(mail)
    console.log(mailer)
    console.log(user_date)
    this.message = ''
    sessionStorage.setItem('mailer', mailer)
    sessionStorage.setItem('mailee', mailee);
    sessionStorage.setItem('user_date', user_date)
    console.log(sessionStorage.getItem('mailer'))
    this.user_message = mail;
    this.mailee = mailee;
    this.user_date = user_date;
    this.selectedIndex = _index;
  }

i am doing something wrong. The only thing i get to show is the mail.FROM and mail.SUBJECT. I know this is because of the array in the mesage part. I dont know how to go about that.

2
  • MESSAGE_DATE is from the array, i named it that way Commented Mar 30, 2020 at 19:23
  • the question is how do i pick the values of mail.MESSAGE_DATE ? Commented Mar 30, 2020 at 19:31

1 Answer 1

1

In Data.service.ts

mail_det() {
    this.message = 'Welcome!';
    console.log(this.message);
    this.staff_email=sessionStorage.getItem('email');
    console.log(this.staff_email)

    this.http.get(this.domain_protocol + this.f_domain_name+'/api/v1.0/get_user_detail/?id='+this.staff_email);
  }

in mail.component.ts

public data: Array<any> = []; 
    constructor(public dataSrv: DataService <-- this is the class name of the data service you created; import it)




 ngOnInit(){
         this.dataSrv.mail_det().subscribe(result =>{
        console.log(result); <-- your api response; 
this.data = result;
}, error => {console.log(error);
});
            }

in mail.component.html

<div class="card-body p-0">
                      <div class="float-left" style="width: 330px; height: 430px; border-right: 1px solid #dad9d9; overflow-x: hidden; overflow-y: auto;">
                          <div class="p-2 profile-card" style="width: 315px; height: 100px; border-bottom: 1px solid #dad9d9;" *ngFor="let mail of data; let i = index;" (click)="viewMail(mail.MESSAGE_DATE,mail.FROM,mail.NAME,mail.DATE,i)" [ngClass]="{'highlight': selectedIndex === i}">
                              <div class="row">
                                  <div class="col-md-3 pt-2">
                                      <div class="rounded-circle shadow" style="background-image: url('images/avt.jpg'); background-repeat: round; height: 70px; width: 70px;">
                                          <div style="height: 20px; width: 20px; border: 3px solid white;" class="rounded-circle bg-success"></div>
                                      </div>
                                  </div>
                                  <div class="col-md-7 p-0 pl-3 pt-4" style="line-height: 12px;">
                                      <p style="font-size:18px;"><b>{{mail.FROM}}</b></p>
                                      <p style="font-size:13px;">{{mail.NAME }}.</p>
                                  </div>
                                  <div class="col-md-2 p-0 pt-3" style="line-height:11px;">
                                      <p class="text-secondary" style="font-size:12px;">20m <i class="fa fa-star fa-md" aria-hidden="true"></i></p>
                                  </div>
                              </div>
                          </div>
Sign up to request clarification or add additional context in comments.

3 Comments

You only made changes to the mail.component.ts file right?
i don't think i understand what you did
@EniayomiOluwaseyi did it work for you? i changed the data-service mail_det function, in in mail.component.ts i called the data service mail_det function and in html i changed this line <div class="p-2 profile-card" style="width: 315px; height: 100px; border-bottom: 1px solid #dad9d9;" *ngFor="let mail of data; let i = index;" (click)="viewMail(mail.MESSAGE_DATE,mail.FROM,mail.NAME,mail.DATE,i)" [ngClass]="{'highlight': selectedIndex === i}">

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.