AngularJS在模板部分中显示已排序的$ http响应

时间:2017-06-01 20:37:32

标签: angularjs arrays angular-ui-router

我目前正在开发一个项目,我需要使用Angular按类别和子类别对响应进行排序。

我的控制器目前看起来像:

function($http, $stateParams) {
        let vm = this;

        $http({
                method: 'GET',
                url: url,
                timeout: 10000,
                contentType: "application/json;odata=verbose", 
                headers: {"Accept": "application/json;odata=verbose"}, 
                params: {},
            }).then(function(data, status, headers, config) {

                let documents = data.data.d.results;

                $.each(documents, function(i, item){
                    vm.data = sortDocuments(documents);
                })

            }).catch(function(error) {
                console.log(error);
            });

            function sortDocuments(documents) {
                return _.sortBy(documents, item => {
                    return {
                        category: item.Category,
                        subcategory: item.Subcategory,
                        documentURL: item.EncodedAbsUrl,
                        tags: item.Tags
                    }
                })
            };              
        })

我需要在视图中对类别和子类别进行排序,但不确定如何去做。我的模板部分目前看起来像:

<div uib-accordion-group class="panel-default" heading="Subcategory Name">
      <table class="table">
          <thead>
            <tr>
              <th>Name</th>
              <th>Tags</th>
              <th>Link</th>
            </tr>
          </thead>
          <tbody ng-show="item.subcategory == 'Subcategory Name'" ng-repeat="item in documents.data">
            <tr>
              <td>
                <p>{{ item.name }}</p>
              </td>
              <td>
                <p>{{ item.tags.results }}</p>
              </td>
              <td>
                <a href="{{ item.documentURL }}">Open 
              Document</a>
              </td>
            </tr>
          </tbody>
        </table>
  </div>

任何人都可以告诉我,为了按类别和子类别对视图进行排序,我缺少了什么?

1 个答案:

答案 0 :(得分:1)

我不确定你为什么在那里使用_.map。 _.sortBy应该做你需要的。

http://underscorejs.org/#sortBy

这应该非常接近:

vm.data = _.sortBy(data.data.d.results, document => { return document.Category + document.Subcategory } )