gpt4 book ai didi

javascript - 在 uib-tab 中添加带有 active 和 ng-repeat 的选项卡

转载 作者:行者123 更新时间:2023-11-30 11:58:05 25 4
gpt4 key购买 nike

所以我已经尝试解决这个问题一段时间了,我看到了一个与此类似但没有得到答复的帖子,所以我会尝试发布这个但用一个 plunkr 作为示例。

所以问题是在加载时,我注意到 ui-tab 始终设置为“添加选项卡”按钮。我想要做的是让 ui-tab ng-repeat 中的第一个元素处于事件状态,而不是静态的添加标签按钮。

<uib-tabset active="activeTabIndex">
<uib-tab ng-repeat="tab in tabs" heading="{{tab.title}}">Some content</uib-tab>
<uib-tab heading="Add a tab" ng-click="addTab()" >Add a tab</uib-tab>
</uib-tabset>

https://plnkr.co/edit/XrYSKLdyN1cegfcdjmkz?p=preview

我怎样才能做到这一点?我已经研究了一段时间,但仍然不知道如何解决这个问题。

谢谢,

最佳答案

猜猜你可能喜欢这个 fixed plunker ,

创建您自己的 directive 有点棘手 而不是使用额外的 <uib-tab>实现目标。

示例代码:

<!doctype html>
<html ng-app="ui.bootstrap.demo">

<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-animate.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.2.4.js"></script>
<script type="text/javascript">
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function($scope, $window, $timeout) {

$scope.tabs = [{
title: 'Tab1',
content: 'content1'
}, {
title: 'Tab2',
content: 'content2'
}];
$scope.activeTabIndex = 0;//$scope.tabs.length - 1;

$scope.addTab = function() {
var newTab = {
title: 'Tab ' + ($scope.tabs.length + 1),
content: 'content ' + ($scope.tabs.length + 1)
};
$scope.tabs.push(newTab);
$timeout(function() {
$scope.activeTabIndex = ($scope.tabs.length - 1);
});
console.log($scope.activeTabIndex);
};
});
angular.module('ui.bootstrap.demo').directive('uibTabButton', function() {
return {
restrict: 'EA',
scope: {
handler: '&',
text:'@'
},
template: '<li class="uib-tab nav-item">' +
'<a href="javascript:;" ng-click="handler()" class="nav-link" ng-bind="text"></a>' +
'</li>',
replace: true
}
});
</script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
<div ng-controller="TabsDemoCtrl">

Active index: {{ activeTabIndex }}
<br /> Tab count: {{ tabs.length }}
<br />

<input type="button" value="Add Tab" ng-click="addTab()" />

<uib-tabset active="activeTabIndex">
<uib-tab active="activeTabIndex==$index" ng-repeat="tab in tabs" heading="{{tab.title}}">{{tab.content}}</uib-tab>
<uib-tab-button handler="addTab()" text="Add a tab"></uib-tab-button>
</uib-tabset>
</div>
</body>

</html>

关于javascript - 在 uib-tab 中添加带有 active 和 ng-repeat 的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com