Javascript AngularJS:有没有比指定的更好的方法来实现这一点?
我使用一个生成引导选项卡布局的模板。如下图所示:Javascript AngularJS:有没有比指定的更好的方法来实现这一点?,javascript,html,angularjs,twitter-bootstrap,dry,Javascript,Html,Angularjs,Twitter Bootstrap,Dry,我使用一个生成引导选项卡布局的模板。如下图所示: <div class="a"> <ul class="nav nav-bar nav-stacked" role="tabs"> <li><a href="#home"></a></li> ... </ul> <div class="tab-content"> <div id
<div class="a">
<ul class="nav nav-bar nav-stacked" role="tabs">
<li><a href="#home"></a></li>
...
</ul>
<div class="tab-content">
<div id="home">abc</div>
...
</div>
</div>
对于这样的JSON层次结构,我基本上需要重复两次。一次用于ul li
,一次用于选项卡内容,因为选项卡的每个对象都包含与其相关的数据
因此,到目前为止,我所做的是:
<div class="a">
<ul class="nav nav-bar nav-stacked" role="tabs">
<li ng-repeat="foo in data"><a href="#home">{{foo.name}}</a></li>
...
</ul>
<div class="tab-content">
<div id="home" ng-repeat="foo in data">
<p ng-repeat="f in foo.desc">{{f}}</p>
</div>
...
</div>
</div>
...
{{f}
...
编辑:
所以我的问题是,有没有更聪明的方法来实现这一点,使用一次ng repeat
,而不是两次执行“foo in data”
如果我的问题不清楚,很抱歉。使用
ng include
和$templateCache
而不是ng repeat
。例如:
var-app=angular.module('foo',[]);
函数foo($templateCache)
{
var模型=
{“数据”:
[
{“名称”:“堆栈”,
“描述”:[“交换”、“溢出”]
}
]
},
光标,i,bar=baz=“”;
对于(i=0;i”,model.data[i]。name,“”;
baz=baz.concat(“”,model.data[i].desc.join().replace(/,/g,“ ”);
}
$templateCache.put('name',bar);
$templateCache.put('desc',baz);
}
app.run(foo)代码>
您不能在JSON调用后简单地分配两次吗?在控制器中:$scope.data=response$scope.data2=响应代码>和第二次ng重复将是数据2中的foo
-不是理想的,而是一个选项?
<div class="a">
<ul class="nav nav-bar nav-stacked" role="tabs">
<li ng-repeat="foo in data"><a href="#home">{{foo.name}}</a></li>
...
</ul>
<div class="tab-content">
<div id="home" ng-repeat="foo in data">
<p ng-repeat="f in foo.desc">{{f}}</p>
</div>
...
</div>
</div>