html - Angular.js 使用 Bootstrap 并动态创建行

标签 html twitter-bootstrap angularjs

我想知道如何动态创建 bootstraprow-fluid 的行 div与 angular.js使用 ng-repeat指令。

这是 Angular :

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

虽然这有效。 bootstrap我希望生成的 html 是:

http://jsfiddle.net/YKkXA/2/

基本上我需要对 ng-repeat 中的索引做 mod 2,如果它是 0,关闭 </div>并创建一个新的 <div class="row-fluid"> .这怎么可能?

最佳答案

我们的想法是过滤您的项目以便对它们进行分组,并制作第二个 ngRepeat 以迭代子项目。

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

module.filter('groupBy', function() {
    return function(items, groupedBy) {
        if (items) {
            var finalItems = [],
                thisGroup;
            for (var i = 0; i < items.length; i++) {
                if (!thisGroup) {
                    thisGroup = [];
                }
                thisGroup.push(items[i]);
                if (((i+1) % groupedBy) === 0) {
                    finalItems.push(thisGroup);
                    thisGroup = null;
                }
            }
            if (thisGroup) {
                finalItems.push(thisGroup);
            }
            return finalItems;
        }
    };
});

在你的 Controller 中(因为如果你直接在你的模板中过滤,那么你将有一个 $digest loop ):

function TaskCtrl() {
    $scope.tasksGroupBy2 = $filter('groupBy')(taskGroup, 2);
}

在你的 .html 中:

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

关于html - Angular.js 使用 Bootstrap 并动态创建行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14748449/

相关文章:

jquery - Twitter Bootstrap Affixed Navbar - 下面的 div 跳起来

javascript - knockout 绑定(bind)元素到 Bootstrap 菜单

angularjs - 让 AngularUI 掩码与 Angular Material 一起使用

javascript - 光滑的 JavaScript 安装在 MEAN 堆栈 ANGULAR 中

javascript:使用 getElementByID 填充多个 div

html - 一个CSS类可以包含另外两个类吗

html - 响应式 App : which font-size units em vs. px vs. pt vs. percent

html - 无法滚动标签内容并将高度保持在 100%

javascript - 浏览器同步不使用 gulp 重新加载

html - 如何叠加内联定位的 CSS 形状?