Ng-table: μ„œλ²„ μΈ‘ μ •λ ¬, 필터링, κ·Έλ£Ήν™” 및 νŽ˜μ΄μ§€ λ§€κΉ€μ˜ 예...

에 λ§Œλ“  2014λ…„ 03μ›” 13일  Β·  20μ½”λ©˜νŠΈ  Β·  좜처: esvit/ng-table

μ›Ή μ‚¬μ΄νŠΈμ—μ„œ "AJAX 데이터 λ‘œλ“œ" 예제λ₯Ό μ•Œκ³  μžˆμ§€λ§Œ 데이터 μ •λ ¬, 필터링, κ·Έλ£Ήν™” 및 νŽ˜μ΄μ§€ 맀김과 κ΄€λ ¨λœ λ‹€λ₯Έ λͺ¨λ“  μ˜ˆμ œκ°€ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘(λΈŒλΌμš°μ €)μ—μ„œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

μ„œλ²„ μΈ‘μ—μ„œ 이것을 μˆ˜ν–‰ν•˜λŠ” μ˜ˆκ°€ μžˆμŠ΅λ‹ˆκΉŒ?
λ‚΄κ°€ μ •λ§λ‘œ 관심이 μžˆλŠ” 것은 ν˜•μ‹μ„ μ§€μ •ν•˜κ³  μ§λ ¬ν™”ν•˜κ³  λ§€κ°œλ³€μˆ˜(μ •λ ¬, ν•„ν„°, νŽ˜μ΄μ§€, 크기)λ₯Ό λ¦¬μ†ŒμŠ€(λ˜λŠ” Restangular λ˜λŠ”...)둜 λ³΄λ‚΄λŠ” 방법에 λŒ€ν•œ 예인 것 κ°™μŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”!

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이것이 μ‹œμž‘ν•˜λŠ” 데 도움이 λ˜λŠ” 경우 μ„œλ²„ μΈ‘ νŽ˜μ΄μ§€ 맀김에 λŒ€ν•œ μ˜ˆμž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” νŽ˜μ΄μ§€ λ²ˆν˜Έμ™€ νŽ˜μ΄μ§€ 크기λ₯Ό μ„œλ²„μ— 보내고 μ„œλ²„λŠ” ν•΄λ‹Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ 데이터 ν–‰κ³Ό 총 ν–‰ 수λ₯Ό 응닡 ν—€λ”λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.

    $scope.tableParams = new ngTableParams({
      page: 1, count: 10
    }, {
      getData: function($defer, params) {
        var receiveData = function(data, responseHeaders) {
          // in my case, the server returns the total number of rows as a response header
          // call params.total(...) to tell ng-table the total number of rows
          params.total(responseHeaders("count"));

          // the server returns just the data for the current page, so can send it as is
          $defer.resolve(data);
        };

        // getData gets called when you click on a different page in the pagination links.
        // get the page number and size from params.$params
        var pageNumber = params.$params.page;
        var pageSize = params.$params.count;

        // set up the query parameters as expected by your server
        var queryParams = {"paging.pageSize":pageSize, "paging.pageNumber":pageNumber};

        // send an ajax request to your server. in my case MyResource is a $resource.
        MyResource.query(queryParams, receiveData);
      }
    });

λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.
폭슀 도넛

λͺ¨λ“  20 λŒ“κΈ€

+1

+1

μ•ˆλ…•ν•˜μ„Έμš”, ng-table은 ν΄λΌμ΄μ–ΈνŠΈ 라이브러리, μ„œλ²„ λΆ€λΆ„λ§Œ μ›ν•˜λŠ”λŒ€λ‘œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ https://github.com/esvit/bazalt-rest/blob/master/src/Bazalt/Rest/Collection.php#L37 -87 μ½”λ“œμ˜ 이 뢀뢄을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

@esvit - μš”μ²­μ€ μ„œλ²„ μΈ‘ νŽ˜μ΄μ§€ 맀김, μ •λ ¬, κ·Έλ£Ήν™”, 필터링 등을 μ²˜λ¦¬ν•˜λŠ” ng-table의 μ™„μ „ν•œ μ˜ˆμ— λŒ€ν•œ κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. ng-table이 ν΄λΌμ΄μ–ΈνŠΈ λΌμ΄λΈŒλŸ¬λ¦¬λΌλŠ” 데 λ™μ˜ν•˜μ§€λ§Œ κ·ΈλŸ¬ν•œ μ˜ˆλŠ” λ§Žμ€ 도움이 될 κ²ƒμž…λ‹ˆλ‹€. μ‹œλ‚˜λ¦¬μ˜€ 쀑 원격 데이터와 ν•¨κ»˜ 이 ν΄λΌμ΄μ–ΈνŠΈ 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ν¬ν•¨λ©λ‹ˆλ‹€...

@esvit 예, μš°λ¦¬κ°€ μ›ν•˜λŠ” 것은 _ν•΄μ•Ό_ ν•˜λŠ” 방법, 즉 JSON 객체 ng-table이 κΈ°λŒ€ν•˜λŠ” 것을 λ³΄μ—¬μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€.

+1
필터링, μ •λ ¬ 및 νŽ˜μ΄μ§•μ˜ 클릭 이벀트λ₯Ό κ°€λ‘œμ±„λŠ” λ°©λ²•λ§Œ μžˆμ–΄λ„ λ‚˜λ¨Έμ§€λŠ” μ„œλ²„μ— μ—°κ²°ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€... κ°μ‚¬ν•©λ‹ˆλ‹€.

ν›Œλ₯­ν•œ λ„μ„œκ΄€ btw ...

+1

+1

+1

정렬을 μœ„ν•΄ μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 쒋은 방법이 μžˆμ§€λ§Œ ν•„μš”ν•˜μ§€ μ•Šμ€ 경우 +1μž…λ‹ˆλ‹€.

헀더에 ng-click="sort(vars,directionToggle)"을 μž…λ ₯ν•˜κ³  정렬을 ν™œμ„±ν™”λœ μƒνƒœλ‘œ λ‘˜ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 그러면 λ°©ν–₯ 토글이 ν† κΈ€κ³Ό μΌμΉ˜ν•˜λŠ” ν•œ ν™”μ‚΄ν‘œκ°€ μ œλŒ€λ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.
필터링은 μ•½κ°„ 더 λ³΅μž‘ν•©λ‹ˆλ‹€. ng-table 필터링을 λΉ„ν™œμ„±ν™”ν•˜κ³  헀더에 μ™„μ „νžˆ μ‚¬μš©μž μ •μ˜ ν•„ν„° μž…λ ₯을 μΆ”κ°€ν•˜λ©΄ ng-table intergeneration에 λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

κ±°κΈ°μ—μ„œ λ°±μ—”λ“œ 데이터λ₯Ό μ²˜λ¦¬ν•˜κ³  μ˜¬λ°”λ₯Έ 데이터λ₯Ό μ˜¬λ°”λ₯Έ μˆœμ„œλ‘œ 보내고 μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 것이 μ „λΆ€μž…λ‹ˆλ‹€. 그런 λ‹€μŒ ν•΄λ‹Ή 데이터λ₯Ό μ—°κ²°ν•˜κ³  bamν•˜λ©΄ ajax μ •λ ¬/필터링 ν…Œμ΄λΈ”μ΄ μƒκΉλ‹ˆλ‹€.

+1

이것이 μ‹œμž‘ν•˜λŠ” 데 도움이 λ˜λŠ” 경우 μ„œλ²„ μΈ‘ νŽ˜μ΄μ§€ 맀김에 λŒ€ν•œ μ˜ˆμž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” νŽ˜μ΄μ§€ λ²ˆν˜Έμ™€ νŽ˜μ΄μ§€ 크기λ₯Ό μ„œλ²„μ— 보내고 μ„œλ²„λŠ” ν•΄λ‹Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ 데이터 ν–‰κ³Ό 총 ν–‰ 수λ₯Ό 응닡 ν—€λ”λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.

    $scope.tableParams = new ngTableParams({
      page: 1, count: 10
    }, {
      getData: function($defer, params) {
        var receiveData = function(data, responseHeaders) {
          // in my case, the server returns the total number of rows as a response header
          // call params.total(...) to tell ng-table the total number of rows
          params.total(responseHeaders("count"));

          // the server returns just the data for the current page, so can send it as is
          $defer.resolve(data);
        };

        // getData gets called when you click on a different page in the pagination links.
        // get the page number and size from params.$params
        var pageNumber = params.$params.page;
        var pageSize = params.$params.count;

        // set up the query parameters as expected by your server
        var queryParams = {"paging.pageSize":pageSize, "paging.pageNumber":pageNumber};

        // send an ajax request to your server. in my case MyResource is a $resource.
        MyResource.query(queryParams, receiveData);
      }
    });

λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.
폭슀 도넛

+1

+1

+1

정말 μ’‹λ‹€

λ‚˜λŠ” 그것이 쑰금 λŠ¦μ—ˆλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ λˆ„κ΅°κ°€κ°€ μ„œλ²„ μΈ‘ μ •λ ¬ 데이터λ₯Ό ν‘œμ‹œν•˜λŠ” 정말 쒋은 예λ₯Όν–ˆμŠ΅λ‹ˆλ‹€.
https://www.codeproject.com/Articles/892301/Server-side-Data-Filtering-Sorting-and-Paging-with

λ‚˜λŠ” μš°λ¦¬κ°€ 이것을 ν•  수 μžˆλŠ”μ§€ λͺ°λžμŠ΅λ‹ˆλ‹€. 이것은 λ¬Έμ„œμ—μ„œ κ·Έλ ‡κ²Œ λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. :(

μ•ˆλ…•ν•˜μ„Έμš” ν­μŠ€λ„λ„› μž…λ‹ˆλ‹€.
당신은 의견이 정말 도움이 많이 λ˜μ§€λ§Œ, μ œκ°€ μƒˆλ‘œμš΄ κ²ƒμ΄λ―€λ‘œ λͺ‡ 가지가 λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
1# μˆ˜μ‹  데이터가 ν•¨μˆ˜μ— 인수둜 μ „λ‹¬λ˜λŠ” 이유.
λŒ€μ‹  λ‚΄ ajax ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ
MyResource.query(queryParams, 데이터 μˆ˜μ‹ );
데이터λ₯Ό ν‘œμ‹œν•˜κ³  μžˆμ§€λ§Œ λ‚˜μ€‘μ— ajaxκ°€ λ°˜ν™˜λ˜λ©΄ μΉ΄μš΄νŠΈκ°€ μƒˆλ‘œ 고쳐지지 μ•ŠμŠ΅λ‹ˆλ‹€. 그리고 μ•„μ•½μŠ€ μ½”λ“œ λ‚΄μ—μ„œ λ‹€μ‹œ λ‘œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 λ¬΄ν•œ λ£¨ν”„λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.(

μ•ˆλ…•ν•˜μ„Έμš” @rbhargava25

μˆ˜μ‹  데이터가 ν•¨μˆ˜μ— 인수둜 μ „λ‹¬λ˜λŠ” 이유.

MyResource.query λŠ” 비동기 ν•¨μˆ˜μ΄κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μ„œλ²„μ— μš”μ²­μ„ ν•˜κ³  응닡이 λŒμ•„μ˜€λ©΄ μ–΄λ–€ μ½”λ“œλ₯Ό 싀행할지 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. 이 경우 receiveData _callback function_을 ν˜ΈμΆœν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ ν­μŠ€λ„λ„›...
λ¦¬μ†ŒμŠ€ λŒ€μ‹  κ°„λ‹¨ν•œ http μš”μ²­μ„ μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

yujiayinshi picture yujiayinshi  Β·  8μ½”λ©˜νŠΈ

penchiang picture penchiang  Β·  5μ½”λ©˜νŠΈ

raul1991 picture raul1991  Β·  6μ½”λ©˜νŠΈ

alienriquebm picture alienriquebm  Β·  6μ½”λ©˜νŠΈ

esvit picture esvit  Β·  37μ½”λ©˜νŠΈ