Angular UI Bootstrap 带有 ng-repeat 的标签集
Angular UI Bootstrap tabset with ng-repeat
我正在尝试将我的 bootstrap-ui 版本从 0.14.x 升级到最新的 1.3.2,我遇到了一些关于 uib-tabset / uib-tab 指令。
我想做的是使用 ng-repeat 动态创建选项卡,并让 'active' 选项卡由我的重复模型的表达式或属性处理。
<uib-tabset type="pills" active="{{activeItem.Id}}" >
<uib-tab class="arrow_box"
ng-repeat="item in myObject.myCollection"
ng-click="SetActiveItem(item)" id="{{$index}}"
index="{{item.Id}}">
index="{{item.Id}}" 绑定根本不起作用。所以我似乎无法通过表达式设置我的选项卡索引,如果我可以让 uib-tabset 使用活动 属性 一旦 ng-repeat 是完成。
activeItem 是封闭控制器的 $scope 上的 属性。
添加此绑定导致错误:
Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{item.Id}}] starting at [{item.Id}}].
如果我省略所有内容(uib-tab 上的索引属性和 uib-tabset 上的活动属性)它不会抛出任何错误,但默认情况下它也没有 select 任何选项卡,这意味着我需要单击一个以激活该选项卡。尽管文档声明默认值为 "defaulting to the first tab"。
有什么原因导致 ng-repeat 不再适用于此指令集?我可能在这里遗漏了一些东西,但我很难过。
谢谢
编辑:
这是一个显示我遇到的问题的 plunkr link。
https://plnkr.co/edit/DWOILq?p=preview
首先我尝试了很多修复它,但后来我决定在 google 中搜索。我找到了这个 link 。
您的问题是已知问题,不会被修复。 "uib-tab won't toggle active class if uib-tab index is set to dynamic key"。您必须采取一些不同的方法,例如使用“$index”。
在尝试了更多的东西之后,我意识到我犯了一个错误,并且不必为绑定(活动或索引)的表达式包含括号。
只是看起来不像是在评估它们,但实际上是。
下面是应该有效的代码:
activeItemId 是父控制器上的 属性。
<uib-tabset type="pills" active="activeItemId">
<uib-tab class="arrow_box"
ng-repeat="item in myObject.myCollection"
ng-click="SetActiveItem(item)"
index="item.Id">
</uib-tab>
</uib-tabset>
我正在尝试将我的 bootstrap-ui 版本从 0.14.x 升级到最新的 1.3.2,我遇到了一些关于 uib-tabset / uib-tab 指令。
我想做的是使用 ng-repeat 动态创建选项卡,并让 'active' 选项卡由我的重复模型的表达式或属性处理。
<uib-tabset type="pills" active="{{activeItem.Id}}" >
<uib-tab class="arrow_box"
ng-repeat="item in myObject.myCollection"
ng-click="SetActiveItem(item)" id="{{$index}}"
index="{{item.Id}}">
index="{{item.Id}}" 绑定根本不起作用。所以我似乎无法通过表达式设置我的选项卡索引,如果我可以让 uib-tabset 使用活动 属性 一旦 ng-repeat 是完成。
activeItem 是封闭控制器的 $scope 上的 属性。
添加此绑定导致错误:
Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{item.Id}}] starting at [{item.Id}}].
如果我省略所有内容(uib-tab 上的索引属性和 uib-tabset 上的活动属性)它不会抛出任何错误,但默认情况下它也没有 select 任何选项卡,这意味着我需要单击一个以激活该选项卡。尽管文档声明默认值为 "defaulting to the first tab"。
有什么原因导致 ng-repeat 不再适用于此指令集?我可能在这里遗漏了一些东西,但我很难过。
谢谢
编辑: 这是一个显示我遇到的问题的 plunkr link。 https://plnkr.co/edit/DWOILq?p=preview
首先我尝试了很多修复它,但后来我决定在 google 中搜索。我找到了这个 link 。
您的问题是已知问题,不会被修复。 "uib-tab won't toggle active class if uib-tab index is set to dynamic key"。您必须采取一些不同的方法,例如使用“$index”。
在尝试了更多的东西之后,我意识到我犯了一个错误,并且不必为绑定(活动或索引)的表达式包含括号。
只是看起来不像是在评估它们,但实际上是。
下面是应该有效的代码: activeItemId 是父控制器上的 属性。
<uib-tabset type="pills" active="activeItemId">
<uib-tab class="arrow_box"
ng-repeat="item in myObject.myCollection"
ng-click="SetActiveItem(item)"
index="item.Id">
</uib-tab>
</uib-tabset>