当前位置: 首页 > 面试题库 >

使用ngRepeat时限制显示结果的数量

汝墨一
2023-03-14
问题内容

我发现AngularJS教程很难理解。这一步引导我逐步构建一个可显示手机的应用程序。我处于第5步,我想作为一个实验,尝试让用户指定他们希望显示多少。该视图如下所示:

<body ng-controller="PhoneListCtrl">

  <div class="container-fluid">
    <div class="row-fluid">
      <div class="span2">
        <!--Sidebar content-->

        Search: <input ng-model="query">
        How Many: <input ng-model="quantity">
        Sort by:
        <select ng-model="orderProp">
          <option value="name">Alphabetical</option>
          <option value="age">Newest</option>
        </select>

      </div>
      <div class="span10">
        <!--Body content-->

        <ul class="phones">
          <li ng-repeat="phone in phones | filter:query | orderBy:orderProp">
            {{phone.name}}
            <p>{{phone.snippet}}</p>
          </li>
        </ul>

      </div>
    </div>
  </div>
</body>

我添加了以下行,用户可以在其中输入他们想要显示多少个结果:

How Many: <input ng-model="quantity">

这是我的控制器:

function PhoneListCtrl($scope, $http) {
  $http.get('phones/phones.json').success(function(data) {
    $scope.phones = data.splice(0, 'quantity');
  });

  $scope.orderProp = 'age';
  $scope.quantity = 5;
}

重要的一行是:

$scope.phones = data.splice(0, 'quantity');

我可以用硬编码来表示应该显示多少部电话。如果输入5,将显示5。我要做的就是从视图中读取该输入中的数字,并将其放在data.splice行中。我尝试了带引号和不带引号,但都没有用。我该怎么做呢?


问题答案:

稍微更“ Angular的方式”将是使用limitToAngular原生提供的简单过滤器:

<ul class="phones">
  <li ng-repeat="phone in phones | filter:query | orderBy:orderProp | limitTo:quantity">
    {{phone.name}}
    <p>{{phone.snippet}}</p>
  </li>
</ul>



app.controller('PhoneListCtrl', function($scope, $http) {
    $http.get('phones.json').then(
      function(phones){
        $scope.phones = phones.data;
      }
    );
    $scope.orderProp = 'age';
    $scope.quantity = 5;
  }
);

[**PLUNKER**](http://plnkr.co/edit/7pYWjCqBufRkxKEk23ev?p=preview)



 类似资料:
  • 问题内容: 如何限制从数据库检索到的结果数? 问题答案: 您可以这样尝试,以明确获取10个结果。 如果后端支持,它将自动在后端创建本机查询以检索特定数量的结果,否则将在获取所有结果后进行内存限制。

  • 问题内容: 我想使用jQuery: 将用户可以在文本区域中输入的行数限制为设置的数字 使行计数器出现,以在输入行时更新行数 回车键或/ n将计为行 感谢任何可以帮助的人! 对于此示例,可以说将允许的行数限制为10。 谢谢大家! 问题答案: HTML: js:

  • 主要内容:指定初始位置,不指定初始位置,LIMIT和OFFSET组合使用当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用  LIMIT 关键字来限制查询结果返回的条数。 LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。 LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。 指定初始位置 LIMI

  • 当数据列表中有一组很长的元素时,它们都会显示,旁边有一个滚动条。有没有一种简单的方法可以只显示前5名,而不显示其他的? 例如:http://jsfiddle.net/yxafa/

  • 问题内容: 在MySQL中,我可以执行以下操作: 如果表有10,000行,那么该查询的速度要比我省略LIMIT部分的速度快得多。 在ElasticSearch中,我得到以下内容: 当我运行此搜索时,它需要花费几秒钟的时间,而mysql可以在短得多的时间内返回相同查询的结果。 如果传入size参数(设置为1),则它仅成功返回1个结果,但是查询本身并没有比将size设置为unlimited并返回所有结

  • 问题内容: 我正在尝试为我的Qt单元测试项目使用Jenkins xUnit插件,但是我无法使其工作… 这是我到目前为止所做的: 首先,我使用qmakebuilder插件构建我的单元测试项目(向qmakebuilder插件提供.pro),然后添加构建部分,首先在其中放置testResult xml文件,然后运行测试带有标志的二进制文件,以使其为我生成xml文件,然后将xml文件命名为: 最后,在Po