2017-09-15 4 views
0

내 구성 요소 중 하나에 p-dialog 내에 p-datatable을 표시하고 있습니다. 사용자가 이전에이 테이블에서 행을 거의 선택하지 않은 경우 사용자가 다음에 p-dialog를 방문 할 때 선택된 행을 표시해야합니다.primeng : Datatable 바인딩 선택 속성을 비동기 적으로

선택한 항목의 배열을 p- 데이터 테이블의 selection 속성에 전달 중입니다. 그러나 행은 화면에서 선택된 것으로 표시되지 않습니다.

같은 행을 다시 선택하면 selection 속성에서 두 번 표시됩니다. 즉, 미리 선택된 행은 selection 속성에 올바르게 보관되지만 어떤 식 으로든 html에 바인딩되지 않습니다.

*ngIf에 전체 p-dialog를 감싸려고했지만 데이터가 수신 된 후에 만 ​​생성되지만 아무런 차이가 없었습니다.

선택한 행을 p- 데이터 테이블에 바인드하려면 어떻게해야합니까?

<div *ngIf="data && data.length" class="col-sm-12"> 
    <p-dataTable #ListRef [value]="data" rowHover="true" [multiSortMeta]="multiSortMeta" (onRowSelect)="onSelect($event)" [(selection)]="selectedData" (onRowUnselect)="onUnSelect($event)"> 
     <p-column field="launchDate" header="Launch Date" [sortable]="true"></p-column> 
     <p-column field="endDate" header="End Date" [sortable]="true"></p-column> 
    </p-dataTable> 
    </div> 

는 또한 ViewChild를 사용하여 참조를 페치 거기 selection 속성 값을 할당 시도했다. 그것도 아무런 차이가 없었습니다.

그러나 ngOnInit 메서드에서 이미 dataselectedData을 사용할 수 없다면 문제가 발생하지 않는다는 것을 알았습니다.

아이디어가 있으십니까?

+0

선택한 항목의 배열을 'selectedData'선택 속성에 어떻게 전달합니까? 할당 후보기가 새로 고쳐지지 않을 수도 있습니다. 푸시 대신 스프레드 연산자를 사용해보십시오. – TimeTraveler

+0

그냥'selection' 속성에 배열을 할당합니다. –

답변

0

처음에 나는 그것을 놓쳤지 만 나중에 전체 행에 대해 선택된 행을 비교하기 위해 할당 할 수있는 속성이 dataKey 인 것을 발견했습니다. 이것은 나를 위해 일했다. 유일한 변화는 고유

<p-dataTable #fundListRef [value]="data" rowHover="true" [(selection)]="selectedData" (onRowSelect)="onFundSelect($event)" (onRowUnselect)="onFundUnSelect($event)" 
     dataKey="id"> 

또한, p 데이터 테이블 문서는 어떻게 든 내 경우에 작동하지 않는지도 비교를 사용하는 것을 말한다 행을 일치하도록 필드 이름을 지정하는 것이 었습니다.

관련 문제