2015-02-04 3 views
5

ngHandsontableHandsontable에 대한 각도 지시문을 사용하고 있습니다. 데이터를 성공적으로 표시 할 수 있었지만 DB에 데이터를 전송할 수 있도록 수정 된 행에 액세스하는 데 어려움을 겪고 있습니다.
afterChange 콜백을 바인딩하려고 시도했지만 인덱스가 열 정렬 후 해제 된 것 같습니다. 내가 GetData 메서드 또는 columnSorting 재산과 같은 API에 액세스하기 위해 무엇을해야 ngHandsontable 데이터를 저장하거나 할 수있는 가장 좋은 방법은 무엇 궁금nghandsontable을 사용하여 핸즈프리 메서드/속성에 액세스하십시오.

(가 아닌 데이터 소스 내의 테이블에 표시된 행의 인덱스를 보여줍니다)

도와 주셔서 정말로 고맙습니다! - Marco

+0

나는이 문제를 조사해 보았다. 불행히도 이것은 ngHandsontable에 대한 문서가 가장 적게 말하기 때문에 매우 어려웠습니다. 문제를 표시하는 샘플 코드를 게시하거나 지금까지 진행 상황을 보여주는 plnkr을 작성하라는 조언을드립니다. 내가 지금 발견 할 수 있었던 것은 막연하게 가능한 해결책을 설명하는 [this] (https://github.com/handsontable/ngHandsontable/issues/34) 이슈이다. – Bricktop

답변

4

afterInit 이벤트를 사용하여 인스턴스를 가져온 다음 afterChange와 같은 추가 이벤트에서 메소드를 호출했습니다. 다음

afterInit: function() { 
     $scope.hot.instance = this; 
    } 

과 :

이 내 코드의 모습을 어떻게

afterChange: function (changes, source) { 
     if (source != 'loadData') {   
      var hot = $scope.hot.instance; 
      var dataRow = hot.getSourceDataAtRow(index) 
      // .... saveChanges... 
     }; 
    } 

감사 나에게 힌트를주는 Bricktop에 많은.

post: function postLink(scope, iElement, iAttrs, controller) { 
    var hotDiv = iElement.find("div[hot-table]") 

    var hotInstance = hotDiv.isolateScope().hotInstance; 
    hotInstance.addHook('afterLoadData', function(){ 
     console.log("loaded data"); 
    }); 
} 
0

난 그냥 논리의 종류와 그것을 해결 like

this.getCell() 

this.getSourceDataAtRow() 
0

단순히 컨트롤러

var vm = this; 

에서보기 모델을 사용하고 당신이보기 모델의 핵심 handsontable 방법 중 하나를 호출 할 수 있습니다

관련 문제