javascript - 如何在 angular-ui 中选择一个标签?(AngularJS)
我想选择最后一个标签页,有什么方法吗?只有 ng-repeat 内的标签页可以被选择,我不会使用 ng-repeat,没有 ng-repeat 怎么做?
这是可用的代码:http://plnkr.co/edit/ZJNaAVDBrbr1JjooVMFj?p=preview
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<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="tabs[0].active = true">Select second tab</button>
<button type="button" class="btn btn-default btn-sm" ng-click="tabs[1].active = true">Select third tab</button>
<button type="button" class="btn btn-default btn-sm" ng-click="tabs[3].active = true">SELECT LAST 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>
<uib-tab heading="Static title">Static content</uib-tab>
<uib-tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" disable="tab.disabled">
{{tab.content}}
</uib-tab>
<uib-tab heading="How to select this tab???">nico</uib-tab>
</uib-tabset>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
<script type="text/javascript">
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function($scope, $window) {
$scope.tabs = [{
title: 'Dynamic Title 1',
content: 'Dynamic content 1'
}, {
title: 'Dynamic Title 2',
content: 'Dynamic content 2',
disabled: true
}];
});
</script>
</body>
</html>
答案#1
这是我的代码,以防有人需要其他示例:
http://plnkr.co/edit/rBk95jt02AvE78GlGLzu?p=preview
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<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="tabs[1].active = true">SELECT SECOND TAB!!!</button>
</p>
<hr />
<uib-tabset>
<uib-tab heading="First" active="tabs[0].active">{{tabs[0].text}}</uib-tab>
<uib-tab heading="Second" active="tabs[1].active">Second</uib-tab>
</uib-tabset>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
<script type="text/javascript">
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function($scope, $window) {
$scope.tabs = [{text:"First Text"}, {},{},{}];
});
</script>
</body>
</html>
答案#2
我所做的只是初始化一个新对象来保存你的新标签,并在按钮中更改你的引用。它解决了你的问题,但我不知道这是否是你想要的架构。
以下是亮点:
$scope.separateTab = {
title: 'How to select this tab???',
content: 'Dynamic content 2'
};
<uib-tab heading="{{separateTab.title}}" active="separateTab.active">nico</uib-tab>
<button type="button" class="btn btn-default btn-sm" ng-click="separateTab.active = true">SELECT LAST TAB!!!</button>
这是 plnkr
