Angular 2의 구성 요소간에 배열을 공유하는 방법은 무엇입니까?

user6196015

할 일 목록을 만들고 싶습니다. 2 개의 구성 요소가 있습니다 (나중에 더 많음) Tache.

Navbar 구성 요소

import { Component } from '@angular/core';
import { Router } from '@angular/router';

import { Tache } from './tache';
import { TacheService } from './tache.service';
import { InMemoryDataService } from './en-memoire';
@Component({
  selector: 'navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.css']
})
export class NavBarComponent {
  constructor(
    private tacheService: TacheService) {}

  add(name: string): void {
    name = name.trim();
    if (!name) {return;}
    this.tacheService.create(name)
      .then(tache => {
        return insert(tache);
      });
  }
}

TachesInit 구성 요소

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';

import { Tache } from './tache';
import { TacheService } from './tache.service';
import { InMemoryDataService } from './en-memoire';

@Component({
  selector: 'tachesInit',
  templateUrl: './tachesInit.component.html',
  styleUrls: ['./tachesInit.component.css']
})
export class TachesInitComponent implements OnInit {

  tacheSelectionnee: Tache;
  constructor(
    private tacheService: TacheService) {}
  ngOnInit(): void {
    this.tacheService.getTaches()
      .then(taches => this.taches = taches);
  }
}

서비스

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

import { Tache } from './tache';

@Injectable()
export class TacheService {
  private headers = new Headers({'Content-Type': 'application/json'});
  private tachesUrl = 'api/taches';  // URL to web api
  taches: Tache[] = [];

  tacheSelectionnee: Tache;

  constructor(private http: Http) {}
  getTaches(): Promise<Tache[]> {
    return this.http.get(this.tachesUrl)
      .toPromise()
      .then(response => {
        let taches = response.json().data as Tache[];
        console.log(taches);
        return taches;
      })
      .catch(this.handleError);
  }

  create(name: string): Promise<Tache> {
    return this.http
      .post(this.tachesUrl, JSON.stringify({name: name, stat: 0}), {headers: this.headers})
      .toPromise()
      .then(res => res.json().data as Tache)
      .catch(this.handleError);
  }

  insert(tache: Tache): void {
    this.taches.push(tache);
  }
}

TachesInit 구성 요소가 완료되지 않은 상태 insert에서 두 함수 사용하여 데이터를 전달 taches하고 서비스에서 선언 된 배열에 저장합니다 (모든 구성 요소가 데이터에 액세스 할 수 있도록) 오류가 발생합니다.

src/app/navbar.component.ts(26,15): error TS2304: Cannot find name 'insert'

추신 : 더 쉬울 경우 다른 솔루션을 수락합니다.

사용자 3821892

26 행에서 다음을 수행해야합니다.

this.tacheService.insert(name)

모든 구성 요소가 동일한 Tache []에 액세스해야합니까? 이 경우이를 구현하는 가장 깨끗한 방법은 필요할 때 서비스에서 직접 해당 값을 가져 오는 것입니다. 따라서 구성 요소의 인스턴스 변수로 태 치를 저장하는 대신 :

taches: Tache[] = [];

대신 해당 인스턴스 변수를 서비스에 넣으십시오. 그런 다음 서비스에서 해당 변수에 직접 액세스하거나 (eh) 서비스에서이를 반환하는 함수를 구현합니다 (더 나은).

어떤 이유로 구성 요소에 Tache []를 절대적으로 저장해야하는 또 다른 옵션은 tache 서비스가 Tache [] 구독을 노출하고 모든 구성 요소가 구독하도록하는 것입니다. http://blog.angular-university.io/how-to-build-angular2-apps-using-rxjs-observable-data-services-pitfalls-to-avoid/를 참조하세요 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Observable 속성을 Angular2의 구성 요소에 전달하는 방법은 무엇입니까?

분류에서Dev

Angular에서 특정 구성 요소의 배경을 설정하는 방법은 무엇입니까?

분류에서Dev

Angular 2 alpha 22, 속성을 통해 구성 요소에 값을 전달하는 방법은 무엇입니까?

분류에서Dev

Angular 2 alpha 22, 속성을 통해 구성 요소에 값을 전달하는 방법은 무엇입니까?

분류에서Dev

Angular에서 구성 요소의 CSS 스타일을 재정의하는 방법은 무엇입니까?

분류에서Dev

Angular의 canDeactivate Guard에 전달 된 일반 구성 요소 속성을 얻는 방법은 무엇입니까?

분류에서Dev

ReactJS-기능 구성 요소의 배열에서 항목을 제거하는 방법은 무엇입니까?

분류에서Dev

Angular 7의 모든 화면에서 구성 요소를 유지하는 방법은 무엇입니까?

분류에서Dev

구성 요소에서 필드 배열의 필드를 비활성화하는 방법은 무엇입니까?

분류에서Dev

Python Dash에서 두 개의 dcc 구성 요소 사이에 공간을 제공하는 방법은 무엇입니까?

분류에서Dev

Yarn 2에서 작업 공간에서 공통 종속성을 공유하는 방법은 무엇입니까?

분류에서Dev

JavaScript / Angular : 동일한 객체의 배열에서 속성을 초기화하는 방법은 무엇입니까?

분류에서Dev

구성 요소 간의 데이터 공유를 이해하는 방법은 무엇입니까?

분류에서Dev

순열에 따라 시퀀스의 구성 요소를 재배 열하는 방법은 무엇입니까?

분류에서Dev

(클릭) 기능을 사용하여 HTML에서 Angular 8의 구성 요소로 문자열을 전달하는 방법은 무엇입니까?

분류에서Dev

Angular 2에서 자식 구성 요소의 콘텐츠를 얻는 방법은 무엇입니까?

분류에서Dev

Angular 2에서 동적으로 추가 된 구성 요소의 값을 해결하는 방법은 무엇입니까?

분류에서Dev

부모 구성 요소 OnSubmit Angular 4에서 자식 구성 요소의 유효성 검사를 트리거하는 방법은 무엇입니까?

분류에서Dev

Polymer 2에서 구성 요소의 기능을 재정의하는 방법은 무엇입니까?

분류에서Dev

구성 요소간에 존재하는 서비스 사용 유형 스크립트 기능을 공유하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Angular 2의 자식 구성 요소 이벤트에서 부모 구성 요소의 로컬 참조를 트리거하는 방법은 무엇입니까?

분류에서Dev

Angular 2 : 서비스 구성을 생성하기 전에 전달하는 방법은 무엇입니까?

분류에서Dev

한 구성 요소의 간격 기능을 다른 구성 요소에서 지우는 방법은 무엇입니까?

분류에서Dev

2 차원 배열에서 값의 유효성을 검사하는 방법은 무엇입니까?

분류에서Dev

2 곳에서 Joomla 3 구성 요소 템플릿을 재정의하는 방법은 무엇입니까?

분류에서Dev

문자 배열을 구성하는 하나 이상의 요소가 문자열에 있는지 확인하는 방법은 무엇입니까? (자바)

분류에서Dev

루프에서 요소의 numpy 배열을 형성하는 방법은 무엇입니까?

분류에서Dev

C #에서 특정 요소의 합계로 배열을 생성하는 방법은 무엇입니까?

분류에서Dev

angular2의 쿼리 매개 변수 변경시 구성 요소가 다시로드되는 것을 방지하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Observable 속성을 Angular2의 구성 요소에 전달하는 방법은 무엇입니까?

  2. 2

    Angular에서 특정 구성 요소의 배경을 설정하는 방법은 무엇입니까?

  3. 3

    Angular 2 alpha 22, 속성을 통해 구성 요소에 값을 전달하는 방법은 무엇입니까?

  4. 4

    Angular 2 alpha 22, 속성을 통해 구성 요소에 값을 전달하는 방법은 무엇입니까?

  5. 5

    Angular에서 구성 요소의 CSS 스타일을 재정의하는 방법은 무엇입니까?

  6. 6

    Angular의 canDeactivate Guard에 전달 된 일반 구성 요소 속성을 얻는 방법은 무엇입니까?

  7. 7

    ReactJS-기능 구성 요소의 배열에서 항목을 제거하는 방법은 무엇입니까?

  8. 8

    Angular 7의 모든 화면에서 구성 요소를 유지하는 방법은 무엇입니까?

  9. 9

    구성 요소에서 필드 배열의 필드를 비활성화하는 방법은 무엇입니까?

  10. 10

    Python Dash에서 두 개의 dcc 구성 요소 사이에 공간을 제공하는 방법은 무엇입니까?

  11. 11

    Yarn 2에서 작업 공간에서 공통 종속성을 공유하는 방법은 무엇입니까?

  12. 12

    JavaScript / Angular : 동일한 객체의 배열에서 속성을 초기화하는 방법은 무엇입니까?

  13. 13

    구성 요소 간의 데이터 공유를 이해하는 방법은 무엇입니까?

  14. 14

    순열에 따라 시퀀스의 구성 요소를 재배 열하는 방법은 무엇입니까?

  15. 15

    (클릭) 기능을 사용하여 HTML에서 Angular 8의 구성 요소로 문자열을 전달하는 방법은 무엇입니까?

  16. 16

    Angular 2에서 자식 구성 요소의 콘텐츠를 얻는 방법은 무엇입니까?

  17. 17

    Angular 2에서 동적으로 추가 된 구성 요소의 값을 해결하는 방법은 무엇입니까?

  18. 18

    부모 구성 요소 OnSubmit Angular 4에서 자식 구성 요소의 유효성 검사를 트리거하는 방법은 무엇입니까?

  19. 19

    Polymer 2에서 구성 요소의 기능을 재정의하는 방법은 무엇입니까?

  20. 20

    구성 요소간에 존재하는 서비스 사용 유형 스크립트 기능을 공유하는 가장 좋은 방법은 무엇입니까?

  21. 21

    Angular 2의 자식 구성 요소 이벤트에서 부모 구성 요소의 로컬 참조를 트리거하는 방법은 무엇입니까?

  22. 22

    Angular 2 : 서비스 구성을 생성하기 전에 전달하는 방법은 무엇입니까?

  23. 23

    한 구성 요소의 간격 기능을 다른 구성 요소에서 지우는 방법은 무엇입니까?

  24. 24

    2 차원 배열에서 값의 유효성을 검사하는 방법은 무엇입니까?

  25. 25

    2 곳에서 Joomla 3 구성 요소 템플릿을 재정의하는 방법은 무엇입니까?

  26. 26

    문자 배열을 구성하는 하나 이상의 요소가 문자열에 있는지 확인하는 방법은 무엇입니까? (자바)

  27. 27

    루프에서 요소의 numpy 배열을 형성하는 방법은 무엇입니까?

  28. 28

    C #에서 특정 요소의 합계로 배열을 생성하는 방법은 무엇입니까?

  29. 29

    angular2의 쿼리 매개 변수 변경시 구성 요소가 다시로드되는 것을 방지하는 방법은 무엇입니까?

뜨겁다태그

보관