UI-bootstrap - 添加一个选项卡,默认情况下 select
UI-bootstrap - Add a tab and select it by default
我正在尝试使用 ui-bootstrap 制作标签系统。
几乎没问题,但我在添加最后一个标签时仍然遇到问题。
添加一个选项卡是可以的,但是如果我想在创建后自动 select 它,我会遇到一个奇怪的行为:
添加了一个选项卡:很好
添加了一个标签:未 selected
添加了一个选项卡:很好
添加了一个标签:未 selected
等等...
我做了一个plunkr来演示我的错误,只需多次点击“+”按钮,看看哪个选项卡是selected.
这是 JS 代码:
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function($scope) {
$scope.tabs = [{
title: 'Dynamic Title 1',
content: 'Dynamic content 1',
active: false
}, {
title: 'Dynamic Title 2',
content: 'Dynamic content 2',
active: false
}];
$scope.addTab = function() {
$scope.tabs.push({
title: 'Dynamic Title ' + ($scope.tabs.length + 1),
content: 'Dynamic content ' + ($scope.tabs.length + 1)
});
$scope.active = $scope.tabs.length - 1;
};
});
这是 HTML 代码:
<div ng-controller="TabsDemoCtrl">
<p>Select a tab by setting active binding to true:</p>
<p>
<button type="button" class="btn btn-default btn-sm" ng-click="active = 1">Select second tab</button>
<button type="button" class="btn btn-default btn-sm" ng-click="active = 2">Select third tab</button>
</p>
<p>
<button type="button" class="btn btn-default btn-sm" ng-click="tabs[1].disabled = ! tabs[1].disabled">Enable / Disable third tab</button>
</p>
<hr />
<uib-tabset active="active">
<uib-tab index="$index" ng-repeat="tab in tabs" heading="{{tab.title}}">
{{tab.content}}
</uib-tab>
</uib-tabset>
<br /><br />
<button ng-click="addTab()">plus</button>
</div>
任何帮助都很好,
干杯
你必须使用超时,uibootstrap 在技术上不支持动态生成的标签。
$timeout(function() {
$scope.active = $scope.tabs.length - 1;
}, 0);
我正在尝试使用 ui-bootstrap 制作标签系统。
几乎没问题,但我在添加最后一个标签时仍然遇到问题。 添加一个选项卡是可以的,但是如果我想在创建后自动 select 它,我会遇到一个奇怪的行为: 添加了一个选项卡:很好 添加了一个标签:未 selected 添加了一个选项卡:很好 添加了一个标签:未 selected 等等...
我做了一个plunkr来演示我的错误,只需多次点击“+”按钮,看看哪个选项卡是selected.
这是 JS 代码:
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function($scope) {
$scope.tabs = [{
title: 'Dynamic Title 1',
content: 'Dynamic content 1',
active: false
}, {
title: 'Dynamic Title 2',
content: 'Dynamic content 2',
active: false
}];
$scope.addTab = function() {
$scope.tabs.push({
title: 'Dynamic Title ' + ($scope.tabs.length + 1),
content: 'Dynamic content ' + ($scope.tabs.length + 1)
});
$scope.active = $scope.tabs.length - 1;
};
});
这是 HTML 代码:
<div ng-controller="TabsDemoCtrl">
<p>Select a tab by setting active binding to true:</p>
<p>
<button type="button" class="btn btn-default btn-sm" ng-click="active = 1">Select second tab</button>
<button type="button" class="btn btn-default btn-sm" ng-click="active = 2">Select third tab</button>
</p>
<p>
<button type="button" class="btn btn-default btn-sm" ng-click="tabs[1].disabled = ! tabs[1].disabled">Enable / Disable third tab</button>
</p>
<hr />
<uib-tabset active="active">
<uib-tab index="$index" ng-repeat="tab in tabs" heading="{{tab.title}}">
{{tab.content}}
</uib-tab>
</uib-tabset>
<br /><br />
<button ng-click="addTab()">plus</button>
</div>
任何帮助都很好,
干杯
你必须使用超时,uibootstrap 在技术上不支持动态生成的标签。
$timeout(function() {
$scope.active = $scope.tabs.length - 1;
}, 0);