Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ul-in-ng-repeat上的条件包装器_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript ul-in-ng-repeat上的条件包装器

Javascript ul-in-ng-repeat上的条件包装器,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我有一个ng repeat,里面有ul列表,我想每8个元素创建一个ul,但我找不到方法。 我必须使用$index%8==0有条件地显示ul,但我不知道如何显示。 这是我目前的代码: <div ng-repeat-start="v in values" ng-show="false"/> <ul> <li ng-class="{'active': filterContent.isSelectedValue(key, v) }" ng-click="fil

我有一个
ng repeat
,里面有
ul
列表,我想每8个元素创建一个
ul
,但我找不到方法。 我必须使用
$index%8==0
有条件地显示
ul
,但我不知道如何显示。 这是我目前的代码:

<div ng-repeat-start="v in values" ng-show="false"/>
  <ul>
    <li ng-class="{'active':  filterContent.isSelectedValue(key, v) }" ng-click="filterContent.addFilter(key, v)">
      <a  class="issue-btn btn-default">{{v}}</a>
     </li>
   </ul>
<div ng-repeat-end ng-show="false"/> 

  • {{v}
输出结果如下所示:

<ul>
   <li>... content... </li>
   <li>.... content... </li>
   <!-- 8 times -->
</ul>
<ul>
   <li>.... more content ... </li>
   <li>.... more content ... </li>
   <!-- 8 times -->
</ul>
<!-- and so on until repeat ends -->
<ul ng-repeat="v in values" ng-if=":: $index % 8 === 0">
    <li ng-repeat="v in values.slice($index, $index + 8)" ng-class="{active: filterContent.isSelectedValue(key, v)}" ng-click="filterContent.addFilter(key, v)">
        <a  class="issue-btn btn-default">{{v}}</a>
    </li>
</ul>
  • 。。。内容
  • 。。。。内容
  • 。。。。更多内容
  • 。。。。更多内容
如下所示:

如果在li上使用ng,您可以轻松做到这一点:

<div ng-repeat-start="v in values" ng-show="false"/>
  <ul>
    <li ng-class="{'active':  filterContent.isSelectedValue(key, v) }" ng-click="filterContent.addFilter(key, v)" ng-if="$index % 8 == 0">
      <a  class="issue-btn btn-default">{{v}}</a>
     </li>
   </ul>
<div ng-repeat-end ng-show="false"/> 

  • {{v}

您可以使用两个嵌套的ngRepeat来完成。大概是这样的:

<ul>
   <li>... content... </li>
   <li>.... content... </li>
   <!-- 8 times -->
</ul>
<ul>
   <li>.... more content ... </li>
   <li>.... more content ... </li>
   <!-- 8 times -->
</ul>
<!-- and so on until repeat ends -->
<ul ng-repeat="v in values" ng-if=":: $index % 8 === 0">
    <li ng-repeat="v in values.slice($index, $index + 8)" ng-class="{active: filterContent.isSelectedValue(key, v)}" ng-click="filterContent.addFilter(key, v)">
        <a  class="issue-btn btn-default">{{v}}</a>
    </li>
</ul>

  • {{v}

但是使用此解决方案,当显示
ul
时,您的问题中只有一个
li
您想添加ul,是不是输入错误,并且您想每8个元素创建一个li?(我编辑了我的答案,在li上添加了ng if)为什么
ng if
上?(使用该功能时,对我的不起作用,但如果我删除这些,那么它就可以工作)这对性能有好处。我假设您使用的是角度<1.4.x?然后是的,只需删除