我在使用ng-include设置动态内容的选项卡集时遇到麻烦。我尝试使用ng-repeat失败:
<tabset justified="true">
<tab ng-repeat="tab in tabs" heading="{{ tab.heading }}" active="tab.active">
<div ng-include="tab.template"></div>
</tab>
</tabset>
另外,我尝试了不使用ng-repeat:
<tabset justified="true">
<tab heading="{{ tabs.1.heading }}" active="tabs.1.active">
<div ng-include="'partial/profile/template1.html'"></div>
</tab>
<tab heading="{{ tabs.2.heading }}" active="tabs.2.active">
<div ng-include="'partial/profile/template2.html'"></div>
</tab>
<tab heading="{{ tabs.3.heading }}" active="tabs.3.active">
<div ng-include="'partial/profile/template3.html'"></div>
</tab>
<tab heading="{{ tabs.4.heading }}" active="tabs.4.active">
<div ng-include="'partial/profile/template4.html'"></div>
</tab>
<tab heading="{{ tabs.5.heading }}" active="tabs.5.active">
<div ng-include="'partial/profile/template5.html'"></div>
</tab>
</tabset>
但是,我得到的是空白页面,没有响应,并且出现了这些错误:
WARNING: Tried to load angular more than once.
和
10 $digest() iterations reached. Aborting!
仅供参考:模板主要为空,一个不为空的模板包含一个基本表。我如何使其工作?
看起来您在使用时有多余的引号ng-repeat
。ng-include="'x.html'"
仅当将多余的引号用作属性时,才需要使用引号。
在JavaScript中将其指定为变量时,您可以按照以下步骤在JavaScript中设置范围变量:$scope.someTemplateUrl = "x.html";
然后将该属性设置为ng-include="someTemplateUrl"
。请注意,变量的值不包含单引号。
第二个版本是您应该做的,tab[0].heading
而不是tab.0.heading
(从0开始而不是从1开始)。
我创建了一个包含工作版本的Plunker,它似乎正常工作:
http://plnkr.co/edit/cL9RPB4otw57pORJqjvx?p=preview
我做了什么:
所以像这样:
$scope.tabs = [
{
"heading": "Tab 1",
"active": true,
"template":"tab1.html"
},
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句