国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

angular.js - ng-repeat如何限數(shù)量輸出?

瀏覽:127日期:2024-10-06 15:44:51

問(wèn)題描述

現(xiàn)在碰到這樣一個(gè)需求:有一個(gè)數(shù)組

$scope.items = [ {name:’a1’},{name:’a2’},{name:’a3’}....]

現(xiàn)在需要它輸出

<ul> <li>a1</li><li>a2</li><li>a3</li><li>a4</li><li>a5</li><li>a6</li><li>a7</li><li>a8</li><li>a9</li><li>a10</li> //10個(gè)</ul><ul> <li>a11</li><li>a12</li><li>a13</li><li>a14</li><li>a15</li><li>a16</li><li>a17</li><li>a18</li><li>a19</li><li>a20</li> //10個(gè)</ul><ul> <li>a21</li><li>a22</li>... //10個(gè)</ul>

我想用ng-repeat輸出,想出的方案是,先把數(shù)組 length 除以 10

$scope.n = Math.ceil ( items.length / 10 );

然后ng-repeat輸出 n 個(gè) ul,再分別在ul里 ng-repeat 10個(gè)item。

那么問(wèn)題來(lái)了,如何ng-repeat輸出n個(gè)ul?

<ul ng-repeat=' ...不會(huì)寫(xiě)... '> <li ng-repeat = ' item in items | ...//如何過(guò)濾'>{{item.name}} </li></ul>

求問(wèn)各路大神啦!

更新問(wèn)題!感謝各位同行!

首先,css已經(jīng)不可動(dòng)了,因?yàn)楦鶕?jù)產(chǎn)品需求已經(jīng)寫(xiě)好了樣式,并得到了每行需要10個(gè)li的結(jié)果。看到@zchq88 這位朋友的提醒以后,我立刻做了一維數(shù)組轉(zhuǎn)二維數(shù)組的過(guò)濾器,像@Chobits 同學(xué)那樣的。但是報(bào)錯(cuò)。

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!

angular.js - ng-repeat如何限數(shù)量輸出?console.log() 會(huì)發(fā)現(xiàn)數(shù)組被執(zhí)行了N遍過(guò)濾器。google也沒(méi)有找到原因和解決方案。我猜測(cè)是,拆數(shù)組的時(shí)候,由于指引型數(shù)據(jù),引發(fā)了重復(fù)臟檢查。實(shí)驗(yàn)了angular.copy也失敗,現(xiàn)在正在找其他解決方案。再次感謝!期待有同學(xué)提出其他解決方案!

解決!最后一次更新:

因?yàn)楫a(chǎn)品中items實(shí)際的結(jié)構(gòu)是

$scope.group = [ {key:888,items:[ {name:’a1’},{name:’a2’},{name:’a3’}....,{name:’a13’}...//n多個(gè)] }, {key:999,items:[ {name:’a1’},{name:’a2’},{name:’a3’}....,{name:’a33’}...//n多個(gè)] }, ....]

繞開(kāi)了html中加過(guò)濾器產(chǎn)生的重復(fù)臟檢查問(wèn)題。根據(jù)@Chobits 提供的過(guò)濾器,在控制器里對(duì)group進(jìn)行了過(guò)濾

group.forEach(function(items){ items.items = $filter(’group’)(items.items);})

然后再ng-repeat輸出,問(wèn)題解決。

<p ng-repeat = 'input in group'> <ul ng-repeat='items in input.items'><li ng-repeat='item in items'> {{item.name}}</li> </ul></p>

prefect!thanks everyone!

問(wèn)題解答

回答1:

//http://stackoverflow.com/a/14463190/2586541app.filter(’group’, function () { return function (items, groupSize) {var groups = [], inner;for (var i = 0; i < items.length; i++) { if (i % groupSize === 0) {inner = [];groups.push(inner); } inner.push(items[i]);}return groups; };});

$scope.group = [ {key:1,items:[ {name:’a1’},{name:’a2’},{name:’a3’}....] }, {key:2,items:[ {name:’a1’},{name:’a2’},{name:’a3’}....] }, ....]

<ul ng-repeat='g in group track by g.key'> <li ng-repeat='item in g.items'>{{item.name}} </li></ul>回答2:

http://stackoverflow.com/questions/21644493/how-to-split-the-ng-repeat-data-with-three-columns-using-bootstrap

However, the most direct and just plainly simple way to get columns is to use CSS columns:是的 贊同這個(gè)排一下版 一行顯示幾個(gè)完全可以用css做 方法多的都懶得寫(xiě)

回答3:

為什么不直接把ITEMS用JS變成2維數(shù)組?然后輸出?

回答4:

把數(shù)據(jù)整理成樹(shù)形結(jié)構(gòu)即可。。。比如

scope.list = [{name:'a',children:[ {name:’son1 of a’}, {name:’son2 of a’} ]},{name:'b',children:[ {name:’son1 of b’}, {name:’son2 of b’} ]}]

然后ng里用雙層repeat

<ul ng-repeat='item in list'> <li ng-repeat = ' son in item.children'>{{son.name}} </li></ul>

相關(guān)文章:
主站蜘蛛池模板: 国产欧美视频在线观看 | 一级黄色录像片 | 日韩免费一级片 | 久久九九精品一区二区 | 黑色丝袜美美女被躁视频 | 狠狠综合久久久久综合小说网 | 在线观看香蕉免费啪在线观看 | 青青热久久综合网伊人 | 美女黄色在线观看 | 成人毛片18女人毛片免费 | 日韩一级欧美一级 | 女子张开腿让男人桶视频 | 怡红院亚洲| 日本一视频一区视频二区 | 久草综合视频 | 性午夜 | 自拍偷拍欧美视频 | 国产精品一区二区三区高清在线 | 欧美一区二区日韩一区二区 | 亚洲特级黄色片 | 成年网在线观看免费观看网址 | 免费看美女无遮掩的软件 | 精品一区二区三区高清免费不卡 | 亚洲国产精品91 | 国内真实愉拍系列情侣自拍 | 亚洲性网站 | 色综合加勒比 | a国产精品| 三级全黄视频 | 久久综合免费视频 | 国产精品午夜国产小视频 | 亚洲视频2 | 国产精品久久久香蕉 | 男人添女人下面免费毛片 | 国产免费久久 | 国产在线观看第一页 | 亚洲在线观看免费 | 一级一级毛片免费播放 | 99精品国产免费久久国语 | 无限资源中文免费 | 美女视频黄a全部免费专区一 |