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);
}