2014-04-14 9 views
1

ngTable뿐만 아니라 Angular 라우팅이 내 응용 프로그램에 사용 중입니다. 내 페이지 중 하나는 ngTable이고 검색 양식은 데이터가 GET 메서드 (MongoDB)를 사용할 때마다 검색하므로 매번 검색 할 때마다 ngTable (테이블)을 업데이트해야하며 내 문제는 처음으로 페이지를로드 한 후 테이블이 한 번만 갱신됩니다.
AngularJS ngTable 업데이트되지 않았습니다.

부분 페이지에 사용되는 콘트롤 :

app.controller('SearchController',function($scope,ngTableParams,$http,$filter, $sce){ 

$scope.searching=function(){ 
    var str = $scope.search.tags; 
    var TagsArry = str.split(","); 

    $http.get('/api/GetDoc',{params:{title:$scope.search.title,tags:$scope.search.tags}}) 
     .success(function(data) 
     { 
      if(data.notExist!=-1){ 
       $scope.tableParams = new ngTableParams({ 
        page: 1,   // show first page 
        count: 10   // count per page 

       }, { 
        total: data.length, // length of data 
        getData: function($defer, params) { 
         $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count())); 

        } 
       }); 
      } 
      }) 
     .error(function(err){ 

     }); 
} 
}); 

답변

1

동일한 문제가있었습니다. 검색 버튼을 클릭 할 때마다 새 검색이 발생할 때마다 $ scope.tableParams를 다시로드해야합니다. 이 작업을 수행하는 간단한 방법은 함수에 $ scope.tableParams.reload()를 래핑 한 다음 검색 버튼을 클릭 할 때 해당 함수를 호출하는 것입니다.

컨트롤러 번호 :

$scope.doSearch = function() { 
    $scope.tableParams.reload(); 
} 

HTML 코드 :

<button ng-click="doSearch()">Search</button> 
0

나는 또한 유사한 문제가 발생했다. ngTable 지시문에 문제가 있습니다. data.length가 변경 될 때만 업데이트됩니다. 나는 마침내이 문제를 해결했다, 단순히 $의 HTTP 요청하기 전에이 줄을 추가 :

그것이 무엇
$scope['tableParams'] = {reload:function(){},settings:function(){return {}}}; 
$http.get('/api/GetDoc',{params:{title:$scope.search.title,tags:$scope.search.tags}}) 
    .success(function(data){ 
      /***** Your Code *********/ 
}); 

, 그것은 다음 그것이 처음하는 것처럼 initilize NG 테이블 설정을 재설정합니다.

관련 문제