I took a step back from my question and realized if I was trying to get css properties, as usual, with jQuery, then I probably didnβt use the angular style solution. My initial problem was that I needed to save the css properties so that I would apply them later. So instead of this approach, I used the ng-class directive to switch classes, so I had nothing to store.
<html> <body> <tabbed-Panel ng-class="btmTabPanelClass" > <div ng-show="opened" class="tabPanelCloseBtn"> </div> <tabs> <pane ng-repeat="pane in panes" heading="{{pane.title}}" active="pane.active"> <div class ="tabPanelContent" ng-include src="activeContent()"></div> </pane> </tabs> </tabbed-Panel> </div </body> </html> angular.module('directives', ['baseModule','ui.bootstrap']) .directive('tabbedPanel',['$animator',function($animator) { //debugger; return { //scope:{}, restrict:"E", //add controller to here controller:function($scope){ //debugger; $scope.bTabClicked = 0; $scope.curTabIdx = 0; $scope.opened = false; $scope.closeBtn = null; $scope.arClasses = ["bottomTabPanel", " bp_off"]; $scope.btmTabPanelClass = $scope.arClasses[0] + $scope.arClasses[1] ; //get the tabs from the flows.json so we can create a model for the tab panel! $scope.panes = $scope.flows[$scope.getCurFlowIdx()].array_data[$scope.getCurPageIdx()].tab_data; //first tab is active by default: //$scope.panes[0].active = true; //set the content for the current tab: $scope.activeContent = function() { for (var i=0;i<$scope.panes.length;i++) { if ($scope.panes[i].active) { $scope.curTabIdx = i; return $scope.panes[i].content; } } }; //tab click watcher (to make sure user clicks on tab and not tab container): $scope.$watch('activeContent()', function(paneIndex) { ++$scope.bTabClicked; }); //-------------------------------------------------- }, link: function($scope, element, attrs) { //debugger; //handler for close button: //its the first child within the parent element: $scope.closeBtn = angular.element(element.children()[0]); $scope.closeBtn.bind('click',function(){ // set all tabs to inactive: $scope.bTabClicked = 0; for (var i=0;i<$scope.panes.length;i++) $scope.panes[i].active = false; TweenLite.to(element, .75, {top:"635px",ease:Power2.easeOut, onComplete:function(){ $scope.opened = false; $scope.btmTabPanelClass = $scope.arClasses[0] + $scope.arClasses[1] ; $scope.$apply(); //force binding to update $scope.bTabClicked = 0; } }); }) /*hander to raise tab panel:*/ element.bind('click', function() { if(!$scope.opened && $scope.bTabClicked){ //debugger; TweenLite.to(element, .75, {top:"150px",ease:Power2.easeOut}); $scope.opened = true; $scope.btmTabPanelClass = $scope.arClasses[0] ; $scope.$apply(); //force binding to update } else $scope.bTabClicked = 0; }); } }; }]);
source share