0

这是我的 json(每个对象可以分配给多个类别):

[
 { "title" : "titel1",
   "description" : "description1",
   "data": {
             "categoryList" : [
                                { "categoryName" : "category1" }
                               ]
            }
 },
 { "title" : "titel2",
   "description" : "description2",
   "data": {
             "categoryList" : [
                                { "categoryName" : "category1" }
                               ]
            }
 },
 { "title" : "titel3",
   "description" : "description3",
   "data": {
             "categoryList" : [
                                { "categoryName" : "category2" }
                               ]
            }
 },
 ... and so on
]

div 标签显示每个类别的内容。当没有内容分配给某个类别时,我想显示消息“没有可用的内容”。不确定像 ng-show="!content."this category" .length" 这样的东西是否可以工作。

<!-- category 1 -->
<div>
  <ul>
    <li ng-repeat="item in content | filter:{'data':'category1'}">
    {{item.title}} - {{item.description}}
    </li>
    <li ng-show="?????">No content available</li> 
  </ul>
</div>

<!-- category 2 -->
<div>
  <ul>
    <li ng-repeat="item in content | filter:{'data':'category2'}">
    {{item.title}} - {{item.description}}
    </li>
    <li ng-show="?????">No content available</li>  
  </ul>
</div>

...

4

1 回答 1

1

您可以保存过滤器返回的数组,并使用它的长度来切换ng-show

<li ng-repeat="item in (filteredContent = (content | filter:{'data':'category1'}))">
...
<li ng-show="filteredContent.length == 0">No content available</li>

在此演示http://plnkr.co/7kMjojVAkCkTR8XQlunB中,尝试更改过滤器以使任何内容都不匹配。

于 2014-04-15T02:54:32.323 回答