首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >list.js排序不工作

list.js排序不工作
EN

Stack Overflow用户
提问于 2016-04-08 07:11:24
回答 1查看 641关注 0票数 0

我试图使用list.js对数据进行排序(名称、标题、标签、视图)。我使用bower安装了list.js,并在html模板<script src="/static/vendors/list.js/dist/list.min.js"></script>.中提到了源代码。

我正试图复制这个码页,但是有棱角。

注意:我知道角排序!

问题:排序和视图更改似乎不起作用

代码语言:javascript
复制
<div id="artists">
    <input class="search" placeholder="Search" />
    <button class="sort" data-sort="artist-name">Sort by name </button>
    <button class="sort" data-sort="album-title">Sort by Project </button>
    <button class="sort" data-sort="record-label">Sort by Label </button>
    <button class="sort" id="viewSwitch"> Change View   </button>


  <ul class="list" id="list">
    <li  ng-repeat="item in artists >
      <img src="http://placehold.it/120x120" alt="#" />
      <h3 class="artist-name">{{item.artist-name}}</h3>
      <p class="album-title">{{item.artist-title}}</p>
      <p class="record-label">{{item.record-label}}</p>
    </li>   </ul> </div>

<script> var options = {   valueNames: [ 'artist-name', 'artist-title', 'record-label' ] };

var artistList = new List('artists', options);

// View Switcher

$('#viewSwitch').on('click',function(e) {
    if ($('ul').hasClass('grid')) {
        $('ul').removeClass('grid').addClass('list');
    }
    else if($('ul').hasClass('list')) {
        $('ul').removeClass('list').addClass('grid');
    } }); </script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-08 09:33:36

使用带有角的第三方库是不好的做法。

如果你继续遵循这个方向,你会遇到很多问题。

但作为一个例子,请看一下list.js in 小提琴

代码语言:javascript
复制
angular.module('ExampleApp', [])
  .controller('ExampleController', function($scope, $timeout) {
    $scope.artists = [{
      "artistName": 'B',
      "albumTitle":5
    }, {
      "artistName": 'A',
      "albumTitle":2
    }, {
      "artistName": 'C',
      "albumTitle":3
    }, {
      "artistName": 'D',
      "albumTitle":4
    }];
  })
  .directive('directiveList', function($timeout) {
    return {
      restrict: "A",
      priority: 1000,
      link: function(scope, element) {
        var options = {
          valueNames: ['artistName', 'albumTitle', 'recordLabel']
        };
        scope.$watch(function() {
          return element.find('li').length;
        }, function(val) {
          if (val > 0) {
             $timeout(function(){ var artistList =  new List('artists', options);});
          }
        });

      }
    };
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.2.0/list.min.js"></script>

<div ng-app="ExampleApp">
  <div ng-controller="ExampleController">

    <div id="artists" directive-list>
      <input class="search" placeholder="Search" />
      <button class="sort" data-sort="artistName">Sort by name </button>
      <button class="sort" data-sort="albumTitle">Sort by Title </button>
      <button class="sort" data-sort="recordLabel">Sort by Label </button>
      <button class="sort" id="viewSwitch"> Change View </button>


      <ul class="list" id="list">
        <li ng-repeat="item in artists">
          <img src=" http://placehold.it/120x120 " alt="# " />
          <h3 class="artistName ">name= {{item.artistName}}</h3>
          <p class="albumTitle ">title= {{item.albumTitle}}</p>
          <p class="recordLabel ">{{item.recordLabel}}</p>
        </li>
      </ul>

    </div>


  </div>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36493635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档