如何使用Angular.js显示有限的数据?

时间:2017-07-04 15:16:13

标签: javascript angularjs

我已经看到了很多关于如何使用limitTo显示有限结果的示例。但不幸的是,它没有按预期工作。目前,它正在显示整个列表,但我想将其限制为4/4块中的8个键值项。

这是plnkr

  <ul>
      <li ng-repeat="(key,value) in stocks |limitTo :8">
            {{key +" "+ value}}
      </li>
  </ul>

 <script>
    var app = angular.module('smallcaseApp', []);
    app.controller('stockCtrl', function($scope, $http) {
    $http.get("data.json").then(function(response) {
        $scope.stocks = response.data.price;
      });
    });
 </script> 

2 个答案:

答案 0 :(得分:1)

对于limitTo输入应该是数组或字符串/数字。您需要创建自定义过滤器来处理它。这是你的问题的工作插件

app.filter('objLimitTo', [function(){
return function(obj, limit){
    if(obj){
      var keys = Object.keys(obj);
      if(keys.length < 1){
        return [];
      }
    }

    var result = {},
    count = 0;
    angular.forEach(keys, function(key){
        if(count >= limit){
            return false;
        }
        result[key] = obj[key];
        count++;
    });
    return result;
};
}]);

http://plnkr.co/edit/8d3gUqg4vHeGQWUXYrat?p=preview

答案 1 :(得分:0)

首先你的plunkr不工作,角js链接应该高于任何其他js(你的app js)。

您正在使用Object进行迭代,因为在这里使用limitTo已经有了一个很好的例子,请查看SO Link