2016-10-24 2 views
0

자습서/기사 및 Stack Overflow의 스레드를 검색해 보았습니다.하지만 AngularJS 2의 배열을 처리하는 데 아무런 문제가 없었으며 AngularJS 1과 다른 점이 있습니다. 다음 클래스의 배열을 만들어야합니다.배열을 생성하고 (그 요소를 밀어 넣고 제거하고 표시하는 방법) 각도 2로 배열을 만드는 방법은 무엇입니까?

그리고 배열의 내용을 추가, 제거 및 표시하는 이벤트 함수를 만들고 싶습니다. 배열을 초기화하고 요소를 푸시하고 특정 (또는 마지막) 요소를 제거하고 반복을 통해 배열의 내용을 표시하는 코드 예제가 필요합니다 (alert()가 사용됩니다).

+0

내가 추가하고 같은 배열에서 항목을 제거 클릭 체크 박스에있는에 샘플 예를 들어 있나요? – Sefa

+2

무엇을 시도 했습니까? '새로운 Array(); 'array.push()'... Angular2에 해당하는 것이 없습니다 –

+0

@ SefaÜmitOray 예, 저는 TypeScript를 사용하고 있습니다. –

답변

2

간단한 javascript array function을 사용하여 배열에 항목을 추가하고 제거 할 수 있습니다.

html로 코드 :

<div *ngFor="let tvalue of typeArr; let i=index;" class="checkbox"> 
    <label class="text-capitalize"> 
    <input formControlName="value" type="checkbox" class="styled" 
         (click)="addtoarray('type',tvalue)"/> 
    {{ tvalue }} 
    </label> 
</div> 

을 구성 요소 파일에서 : 당신이 타이프 라이터를 사용하고

public typeArr:Array<any> = ['angular2','Php','MySql','Java'];  
    public filterlist; 

    addtoarray(key, value) { 
    if (typeof this.filterlist == 'undefined') { //check list 
     this.filterlist = {}; 
    } 
    let dimensions = this.filterlist; 
    dimensions[key] = dimensions[key] || []; //initialize array 

    let i = dimensions[key].indexOf(value); 
    if (i != -1) { 
    dimensions[key].splice(i, 1); //remove array element 
    } 
    else { 
    dimensions[key].push(value); //insert array element 
    } 

    if (dimensions[key].length == 0) { 
    delete dimensions[key];  //delete array 
    } 
    this.filterlist = dimensions;  
    alert(JSON.stringify(this.filterlist)); 
} 
관련 문제