2016-10-18 7 views
0

내 ng 테이블 열 중 하나에 선택 드롭 다운이 있습니다. 이 열의 값은 다른 테이블의 외래 키입니다. 이 키를 표시하는 대신이 키가 나타내는 행의 다른 속성 (이름)을 표시하고자합니다. 내 데이터가 table이라는 배열에 있습니다.ng-table을 사용하여 맞춤 필터링/주문하기

다른 배열 fkTable을 사용하여 올바르게 표시되는 드롭 다운 목록이 있습니다.

$scope.fkConfig = { 
     maxItems: 1, 
     valueField: 'id', 
     labelField: 'name', 
     searchField: 'name' 
    }; 

가 지금은 외국 행 이름이 아닌 ID를 기반으로이 열을 필터링 및 주문 할 수 있도록하려면 : fkConfig이

<selectize ng-model="row[col.name]" 
         options='fkTable' 
         config='fkConfig'"> 

.

$scope.foreignRowNames = { 
    0:"not grouped" 
    1:"Google" 
    14:"Youtube" 
} 

이 특정 컬럼에 대한 사용자 정의 필터를 만들어 :

나는 그들의 이름이 매핑에 대한 ID를 가려고

function filterSelectizeColumn(table, searchTerm) { 
    for (var i = 0; i < table.length; i++) { 
      var fkValue = table[i].fk; 
      var foreignRowName = $scope.foreignRowNames[fkValue]]; 

      if (foreignRowName.indexOf(searchTerm) == -1) { 
       table = table.splice(i, 1); 
      } 
    } 
} 

그러나 이것은 어색하고 비효율적 인 방법을 보인다 뭔가에 대해 생각해 보면 두 도서관의 인기로 인해 다소 일반적인 문제로 여겨졌을 것입니다.

제 질문은 어떻게 효율적으로이 외래 키 열에 대한 사용자 지정 필터를 만들 수 있습니다.

답변

0

내가 갔다 솔루션 : 해당 이름을 가진 모든 외부 키를 대체

  • 은 편집을 할 때, 키에 다시 이름을 변환
  • 그들은
을 나타냅니다