【问题标题】:Double loop, display no results if nothing to dispay双循环,无结果则不显示
【发布时间】:2015-06-30 05:05:36
【问题描述】:

使用 AngularJs,我有一个显示数据的双循环和一个按年份过滤。

对于给定的年份,当我没有结果时,我想显示消息“No results...”,但由于双循环,我无法让它工作

这是一个演示http://plnkr.co/edit/OSWSyXk8bnvmj1rFwHJ0?p=preview

我想在什么时候显示的div

<div ng-if="personnes.length < 1" class="noresults">No RESULTS</div>

要查看没有结果的示例,请在年份下拉菜单中选择“2013-2014”

非常感谢

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/a/18593018/5246
  • 我看不出这个链接有什么帮助?
  • 你能提供一个更易读的例子吗?首先要注意 - personnes 不是数组,所以 personnes.length 不会像你期望的那样工作。
  • 什么是不可读的,所以我可以改进我的 plunker ?
  • 我更新了我的 plunker,personnes 现在是一个数组,但它仍然无法正常工作,因为 personnes.length 总是返回相同的数字,并且在我更改过滤器值时不会改变!

标签: angularjs


【解决方案1】:

嗯,这不是我想要的那么漂亮,但无论如何。您可以按如下方式更新您的 html:

<div ng-if="filterArray(resultsPersonnes).length < 1 && $first" class="noresults">No RESULTS</div>

并在您的控制器中创建新功能:

$scope.filterArray = function(resultsPersonnes) {
    return resultsPersonnes.filter(function(prop) { return prop.fraiss[0].annee == $scope.annee.id; });
}

所以基本上这只是重复了 angular 在ng-repeat 中使用过滤器为您所做的事情。查看更新的Demo

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多