* ngДля не работает (угловой 4) - PullRequest
0 голосов
/ 02 мая 2018

Я импортировал необходимые модули, также проверил на ошибки, но ничего не помогает. Я новичок в угловой и все еще учусь.

Вот мой файл app.module.ts

 import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { HttpModule } from '@angular/http';
    import { CommonModule } from "@angular/common";

    import { AppComponent } from './app.component';
    import { ContactsComponent } from './contacts/contacts.component';


    @NgModule({
        declarations: [
        AppComponent,
        ContactsComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        CommonModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { } 

А вот та часть кода, которая не работает, но не работает, также выдает любую ошибку.

<div class="container">
  <div *ngFor = "let contact of contacts" >
        <div class = "col-md-3">
          {{contact.first_name}}
        </div>
        <div class = "col-md-3">
            {{contact.last_name}}
        </div>
        <div class = "col-md-3">
              {{contact.phone}}
        </div>
        <div class = "col-md-3">
                <input type="button" (click)="deleteContact(contact._id)" value ="Delete" class="btn btn-danger" />
        </div>
   </div>
</div>   

Обновление: Я включил свой файл contact.srevice.ts.

   import { Injectable } from '@angular/core';
import {Http, Headers} from '@angular/http';
import {Contact} from './contact';
import 'rxjs/add/operator/map';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class ContactService {

  constructor(private http: Http) { } 
  //retrieving contact_service

    getContacts() :Observable<any[]>
    {
      return this.http.get('http://localhost:3000/api/contacts')
      .map(res => res.json());
    }

    //add contact method
    addContact(newContact){
      var headers = new Headers();
      headers.append('Content-Type','application/json');
      return this.http.post('http://localhost:3000/api/contact', newContact, {headers:headers})
      .map(res=>res.json());
    }

    //delete Contact Method
    deleteContact(id){
      return this.http.delete('http://localhost:3000/api/contact/'+id)
      .map(res=>res.json());
    }
}

Сетевая активность

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

тебе нужно сделать вот так

import { Component } from '@angular/core'; 
import {Contact} from './contact';

 @Component({ 
selector: 'app-root', 
templateUrl: './app.component.html', 
styleUrls: ['./app.component.css'] }) 
export class AppComponent  implements OnInit
{ 
     title = 'New App';
     contacts: Contact[];

     ngOnInit() {
      this.service.getContacts()
       .subscribe(data=> this.contacts = data)
    }
} 

файл contact.service.ts

    //make use of newer api of http 
    import { HttpClient, HttpHeaders } from '@angular/common/http';

 export class ContactService {

    constructor(private http: HttpClient) { } 
    getContacts()  :Observable<Contact[]>
    { 
      return 
       this.http.get<Contact[]>('http://localhost:3000/api/contacts');
    }



addContact(newContact) {
 const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
  })
 };

  return this.http.post('http://localhost:3000/api/contact', newContact, httpOptions)
    .map(res=>res.json());
}
 }
0 голосов
/ 02 мая 2018

Согласно вашему .ts коду, вам нужно привязать некоторые данные к вашему объекту с именем contacts, чтобы это заработало

contacts = [
    {first_name: "Pardeep", last_name: "Jain", phone: '90'},
    {first_name: "Pardeep", last_name: "Jain", phone: '90'},
    {first_name: "Pardeep", last_name: "Jain", phone: '90'}
  ]

Рабочий пример

Обновление

Вам необходимо привязать данные к тому, что вы получаете от этого сервиса, как это -

ngOnInit() {
      this.service.getContacts()
       .subscribe(data=> this.contacts = data)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...