2017-09-05 8 views
1

각도 2 인 외부 라이브러리 footable (응답 테이블 용)을 사용하는 동안 모든 이벤트 바인딩 즉 (클릭)이 손실됩니다. 시도한 ngZone, ChangeDetectorRef, ApplicationRef. 하지만 내 모든 잃어버린 각도 사건을 구속 할 수없는 결과는 없습니다.외부 javascript lib foot footble을 사용하는 중에 각도 2에서 click 이벤트가 끊어짐

아래 코드를 작성한 후 API를 호출 한 후 목록을 가져 와서 * ngfor를 사용하여 테이블을 채 웁니다.

그러나 Footable.init()가 deactivateHospital() 메소드의 바인딩을 잃는 중입니다. 그리고 click 이벤트를 사용하려고하면 deactivateHospital()가 작동하지 않습니다. 만약 내가 footable 의견을 내 코드가 잘 작동합니다. 어떤 방법으로 내 deactivateHospital()를 다시 바인딩 할 수 있습니까? 외부 자바 스크립트 라이브러리가 일부 문제를 일으키는 것을 알고 있습니다. 이 문제에 대한 해결책이 있습니까?

추가 plnkr : http://plnkr.co/edit/Np2ooN2M07pyVrQiM0Tv?p=preview

<tr data-expanded="true" *ngFor="let hospital of hospitalList"> 
     <td class="hospital-name">{{hospital.name}}</td> 
     <td ><span class="ha-name">{{hospital.admin}}</span><br><span class="ha-id">{{hospital.emailId}}</span> 
     </td> 
     <td>{{hospital.hsa_count}}</td> 
     <td>{{hospital.pcm_count}}</td> 
     <td>{{hospital.pcv_count}}</td> 
     <td>{{hospital.surgeons_count}}</td> 
     <td>{{hospital.prefcards_count}}</td> 
     <td class="active-status"><span class="active-bubble" ></span> 
Active 
     <span class="dropdown"> 
      <span class="dropdown-toggle mr-l-10" type="button" data- 
toggle="dropdown"> 
      <span class="glyphicon glyphicon-chevron-down"></span></span> 
      <ul class="dropdown-menu"> 
      <li ><a (click)="deactivateHospital(hospital.id)" ><span 
class="active-bubble"></span> Inactive </a></li> 
      </ul> 
     </span> 
     </td> 
    </tr> 

// 각 코드 나는 FooTable와 각도 4와 5에서 동일한 문제가 있었다

this.hospitalList = data["hospitals"]; 
     console.log(this.hospitalList); 
     setTimeout(()=>{ 
     FooTable.init($('.table'),{},()=>{ 
     console.log('hi..'); 
     }); 
    },0); 

    deactivateHospital(id){ 
    console.log('id',id); 
    } 
+0

<ul class="dropdown-menu"><li ><button class="footablebutton" (click)="deactivateHospital(hospital.id)" ><span class="active-bubble"></span> Inactive </button></li></ul> 

CSS, 더는 plunkr을 가지고 있습니다. 그렇지 않으면 우리가 당신을 도울 수 없습니다. – trungk18

+1

어떻게 JS 외부 라이브러리를 사용 후 각 영역에

  • Inactive
  • 즉 내 클릭 이벤트를 다시 얻을 수 있습니다. 위의 코드를 작성하면 클릭 이벤트에 응답하지 않습니다. 내 코드를 plunkr에 두는 것은 정말로 어렵습니다. 자세한 내용을 알려 드릴 수 있습니다. –

    +1

    http://plnkr.co/edit/Np2ooN2M07pyVrQiM0Tv?p=preview 희망이 도움이 될 것입니다. –

    답변

    0

    . 그러나 태그를 단추로 변경하면 다시 작동하기 시작합니다. 그런 다음 단추 모양을 태그 모양으로 지정했습니다. 이런 종류의 문제로

    .footablebutton { 
    background:none!important; 
    color:#337ab7; 
    border:none; 
    padding:0!important; 
    font: inherit; 
    cursor: pointer; } 
    
    .footablebutton :hover { 
    color:#23527c; } 
    
    +0

    코드 스 니펫을 공유 할 수 있습니까? –

    +0

    물론입니다. 나는 당신의 코드 일부를 시험판으로 사용했다. – Fred