Html Angular.js使用引导并动态创建行

Html Angular.js使用引导并动态创建行,html,twitter-bootstrap,angularjs,Html,Twitter Bootstrap,Angularjs,我试图弄清楚如何使用ng repeat指令,使用angular.js动态创建bootstraprow div,使用row fluid类 以下是角度: <div ng-repeat="task in tasks" class="row-fluid"> <div class="span6 well">{{task.name}}</div> </div> {{task.name} 但这不起作用。我希望生成的bootstraphtml是

我试图弄清楚如何使用
ng repeat
指令,使用
angular.js
动态创建
bootstrap
row div,使用
row fluid

以下是角度:

 <div ng-repeat="task in tasks" class="row-fluid">
     <div class="span6 well">{{task.name}}</div>
 </div>

{{task.name}
但这不起作用。我希望生成的
bootstrap
html是:


基本上,我需要在ng repeat内部执行索引的mod 2,如果是0,则关闭
并创建一个新的
。这是怎么可能的?

我们的想法是过滤您的项目以便对它们进行分组,然后进行第二次
ngRepeat
迭代子项目

首先,将该过滤器添加到模块中:

module.filter('groupBy',function(){
返回函数(项目、分组依据){
若有(项目){
var finalItems=[],
本组;
对于(变量i=0;i
在您的控件中(因为如果您直接在模板中过滤,那么您将有一个:

函数TaskCtrl(){
$scope.tasksGroupBy2=$filter('groupBy')(任务组,2);
}
在您的
.html
中:


{{task.name}

主题外:使用引导程序,您可以将class=“span6 well”的div放入一个bigass行中,因为它们可以很好地堆叠。(您也将获得响应性布局)。抱歉,如果这只是bootstrap无法处理的行为的一个例子。安东尼和雷米吉奥是对的;您必须创建一个额外的模块载体,该载体将生成浸入ng重复标签中的div。

作为对Anthony给出答案的改进,我想说,您可以使用切片方法,而不是经历所有这些条件,从而为自己省下很多麻烦

尝试按如下方式定义过滤器:

module.filter('group', function() {
    return function(items, groupItems) {
        if (items) {
            var newArray = [];

            for (var i = 0; i < items.length; i+=groupItems) {
                if (i + groupItems > items.length) {
                    newArray.push(items.slice(i));
                } else {
                    newArray.push(items.slice(i, i + groupItems));
                }
            }

            return newArray;
        }
    };
});

您可以在ng repeat循环中使用预定义变量$index。您可以举一个例子,说明
$index
对我们有何帮助?基本上,我们需要在
ng repeat
中使用
if
语句。我看了这个示例,没有办法使用ngRepeat。您应该编写一个自定义指令,创建html DINAMICALLYY您应该接受Anthony对此的回答-它解决了问题,由于这是在谷歌上搜索的第一个结果,应该指出这是正确的方法。请看我的答案,这里有一个过滤器来处理这个问题,它不会导致无限的摘要:对于任何遇到这个问题的人来说,这应该是公认的答案-对我来说很好。一方面,这避免了使用复杂的指令(这将在所有项上重复,并动态创建行和列)。另一方面-项现在已经被拆分,使得遍历它们和其他具有双向绑定的“所有项”函数更少。。。尼斯:-以下是如何在视图中实现这一点而无需无限摘要:这里有一个要点,包括对它的测试:这并不完全正确。有时有效,有时无效,这取决于div的高度。
function Controller ($scope) {
    $scope.itemsGrouped = $filter('group')(itemsArray, 5);
}