尝试构建一个简单的选项卡。Tab 0 中的内容按预期显示和隐藏,但是 Tab 1 永远是空白的,尽管单击 Tab 1 时范围会更新为 true。
首先,控制器在包装器 div 上启动:
<div ng-controller="AdvancedSettingsController as settings">
这是控制器:
function AdvancedSettingsController($scope) {
//setting tab name, and initial booleans
$scope.tab = [
{
title : "Domains",
active : true
},
{
title: "Locale",
active : false
}
];
}
和 ng-click 监听器:
AdvancedSettingsController.prototype.tabs = function (o) {
//set both tab active booleans to false
for (var i = 0; i <= $scope.tab.length - 1; i++) {
$scope.tab[i].active = false;
}
//set active tab boolean to true
$scope.tab[o].active = true;
}
现在,使用 ng-repeat 循环的选项卡对象 - settings.tabs($index) 正在将索引传递给上面的函数:
<li data-ng-repeat="tab in settings.tab">
<a data-ng-click="settings.tabs($index)">
{{tab.title}}
</a>
</li>
内容保存在 2 个 div 中,带有 ifs:
<div data-ng-if="settings.tab[0].active">
Content 1, true by default. Hides and shows as nav is toggled.
</div>
<div data-ng-if="settings.tab[1].active">
Content 2, false by default. Never shows as nav is toggled.
</div>
最后,Chrome 从不更新 if: ngIf: settings.tab[1].active