2017-03-31 5 views
0

DevExtreme 라이브러리를 사용하여 셀 편집 가능 DataGrid를 작성하고 유효성 검사를 구현 한 매우 이상한 문제가 있습니다. 특정 필드에 대한 오류에서 빨간색 되돌리기 버튼이 나타납니다. 사용자가 특히 라우팅을 사용하여 다른 페이지로 이동할 때 동일한 되돌리기 버튼이 사라지지 않습니다. 그러나 동적으로 생성 된 다른 구성 요소로 이동하면 DevExtreme의 DataGrid 인스턴스에서 노출 된 cancelEditData() 기능을 사용하여 제거 할 수 있습니다. 다음은 문제를 나타내는 plunker입니다. 아래 단계를 수행하여 문제를 재현하십시오.DevExteme 취소 단추가 구성 요소에서 멀리 이동하는 중임

  • 지우기까지 첫 번째 행에 열 이름 필드의 값을 클릭 상단 LAVEL 클릭, 이제 버튼을 당신에게
  • 을 빨간색 되돌리기를 줄 것 밖에 "내 구성 요소"메뉴 항목 당신은 볼 것이다 버튼이 화면에 그대로 남아 있습니다.
  • 하지만 Child 2 사이드 바 메뉴 링크를 클릭하면 하위 1과 하위 2가 라우팅을 통하지 않고 동적으로 생성되므로 사라집니다.

모든 도움을 주시면 감사하겠습니다. DevExtreme 지원팀에 이미 연락했는데 이것이 Angular 2 프레임 워크의 문제라고 말하지만 왜 그것이 나를 압도합니다. 관심의

코드

onItemClick(event) { 
    // this works as this is invoked before I create the new component 
    if (this.currentComponentHolder.instance.gridInstance) 
     this.currentComponentHolder.instance.gridInstance.cancelEditData(); 

    let item = event.itemData; 
    this.setContent(item.component); 
} 

// this is the piece which is not working. Also, noteworthy is the fact that the above working code also does not work when i put it in the ngOnDestroy of Child1 component. 
ngOnDestroy() { 
    if (this.currentComponentHolder.instance.gridInstance) 
     this.currentComponentHolder.instance.gridInstance.cancelEditData(); 
} 

답변

0

내가 parent.ts보고,

그러나 콘솔 오류 메시지의 톤을 받고는 Plunker를 실행할 수 없습니다 SRC/parent.ts에 , 난 당신이 여기에 더 implement OnDestroy이없는 것을 볼 :

export class Parent implements OnInit 

또한들의 OnDestroy 가져와야합니다. 그것을 시도하고 알려주세요!

+0

플 런커가 저에게 잘 작동한다는 것은 놀랍습니다. 어떤 종류의 오류가 있는지 확인할 수 있습니까? 네, 내 응용 프로그램에서 OnDestroy를 시도했지만 onNgDestroy 메서드가 parent.ts에 이미 있음을 알 수 있으므로 중요하지 않습니다. 개발자 콘솔을 사용하여 디버깅을 수행했으며 실행 방법을 확인할 수있었습니다. – Sayantan

+0

이번에는 Plunkr을 실행할 수있었습니다. 제 생각에는 당신의 문제는 각도가 아닌 가장 중요한 문제라고 생각합니다. cancelEditData() 호출은 실제로 아무것도 수행하지 않습니다. 나는 cancelEditData()에 대해 셀이 포커스 모드에 있어야한다고 생각한다. 전에는 devExtreme을 사용하지 않았으므로시기 적절하게 알아낼 수 없었습니다. 행운을 빕니다 – bakerhumadi

+0

덕분에, 그리고 몇 가지 앞뒤 DevExtreme 후 거기에 문제가 동의하고 그것을 고치고 감사합니다. – Sayantan