var app = angular.module('plunker', ['ui.bootstrap']);
app.controller('MainCtrl', function($scope, $location) {
$scope.ignoreTabChange = true;
$scope.handleTabDeselect = handleTabDeselect;
$scope.handleTabSelect = handleTabSelect;
$scope.handleTabClick = handleTabClick;
$scope.handleDisableTabTwoClick = handleDisableTabTwoClick;
$scope.setTabOneDisabled = false;
$scope.setTabTwoDisabled = false;
$scope.activate = activate;
activate();
///////////////////////
function activate(){
console.log('--- Activating MainCtrl ---');
}
function handleTabDeselect(tab){
console.log('handleTabDeselect Tab: ' +tab);
if($scope.ignoreTabChange){
var answer = false;//confirm('Unsaved changes in tab, do you want to continue?');
if(!answer){
console.log(' * Should ignore tab change');
if(tab === 'TabTwo'){
$scope.setTabTwoDisabled = false;
$scope.setTabOneDisabled = true;
}else{
$scope.setTabOneDisabled = false;
$scope.setTabTwoDisabled = true;
}
}
}
}
function handleTabSelect(tab){
console.log('handleTabSelect Tab: ' +tab);
}
function handleTabClick($event){
console.log('handleTabClick');
$event.preventDefault();
$event.stopImmediatePropagation();
}
function handleDisableTabTwoClick(){
$scope.setTabTwoDisabled = true;
}
});
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link data-require="bootstrap-css@3.1.*" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<link data-require="bootstrap@*" data-semver="3.3.1" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" />
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.13/angular.js" data-semver="1.3.13"></script>
<script data-require="jquery@*" data-semver="2.1.3" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script data-require="bootstrap@*" data-semver="3.3.1" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script data-require="ui-bootstrap@0.12.0" data-semver="0.12.0" src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.0.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<form class="form-inline" role="form">
<div class="checkbox">
<label>
<input type="checkbox" ng-model="ignoreTabChange" />Ignore tab change</label>
</div>
<button class="btn btn-default" ng-click="handleDisableTabTwoClick()">Disable TabTwo</button>
</form>
<div class="content">
<div class="col-md-12">
<tabset justified="false">
<tab heading="Tab One" deselect="handleTabDeselect('TabOne')" select="handleTabSelect('TabOne')" disabled="setTabOneDisabled"></tab>
<tab heading="Tab Two" deselect="handleTabDeselect('TabTwo')" select="handleTabSelect('TabTwo')" ng-click="handleTabClick($event)" disabled="setTabTwoDisabled"></tab>
</tabset>
</div>
</div>
</body>
</html>
/* Put your css in here */