jQWidgets Forums
jQuery UI Widgets › Forums › Plugins › AngularJS › Why theme is not applying globally
This topic contains 6 replies, has 2 voices, and was last updated by Kavyad23 10 years, 8 months ago.
-
Author
-
<!DOCTYPE html> <html ng-app="ForexOrderBookApp" lang="en"> <head> <meta charset="ISO-8859-1"> <title>Intellect GoTx FX Portal</title> <link rel="stylesheet" href="css/jqx.base.css" type="text/css" /> <link rel="stylesheet" href="css/eTy_Style.css" type="text/css" /> <link rel="stylesheet" type="text/css" href="css/Styles/jqx.energyblue.css" /> <link rel="stylesheet" type="text/css" href="css/Styles/jqx.metrodark.css" /> <script> var ForexOrderBookApp = angular.module("ForexOrderBookApp", [ "jqwidgets" ]); ForexOrderBookApp.controller("ForexOrderBookController", function($scope) { $scope.themes = [ "energyblue", "metrodark" ]; $scope.themeList = { width : 100, height : 18, autoDropDownHeight : true, source : $scope.themes, theme : $scope.theme }; $scope.selectedValue = $scope.themes[0]; $scope.changeTheme = function() { $scope.newTheme = $scope.selectedValue; $scope.themeList.theme = $scope.newTheme; $scope.MenuSplit.theme = $scope.newTheme; $scope.FilterSplit.theme = $scope.newTheme; $scope.MarketWatchSplit.theme = $scope.newTheme; $scope.expander.theme = $scope.newTheme; $scope.bankDropDown.theme = $scope.newTheme; $scope.curpairDropDown.theme = $scope.newTheme; $scope.pricetypeDropDown.theme = $scope.newTheme; $scope.buysellDropDown.theme = $scope.newTheme; $scope.ValueDateDropDown.theme = $scope.newTheme; $scope.AdvradioBtn.theme = $scope.newTheme; $scope.SimpradioBtn.theme = $scope.newTheme; $scope.submitBtn.theme = $scope.newTheme; $scope.cnfmBtn.theme = $scope.newTheme; $scope.mrktWtcBtn.theme = $scope.newTheme; $scope.pendingQuotegridsettings.theme = $scope.newTheme; $scope.activeOrdergridsettings.theme = $scope.newTheme; }; </script> </head> <body style="background: #EEE;"> <div ng-controller="ForexOrderBookController"> <jqx-splitter jqx-settings="MenuSplit" jqx-watch="MenuSplit.theme"> <div class="MenuHeader"> <div class="MainTitle"> <span>FX TRADING</span> </div> </div> <div> <jqx-splitter jqx-settings="FilterSplit" style="overflow-x: auto;" jqx-watch="FilterSplit.theme"> <div class="marketWatchFilter"> <form name="FXMWForm" ng-controller="ForexOrderBookController"> <div class="titleHeader" style="float: left; width: 100%;"> <span> Market Watch</span> <strong><div class="themeSetter"> <label>Theme</label> <jqx-drop-down-list ng-model="selectedValue" jqx-ng-model jqx-settings="themeList" ng-change="changeTheme()" jqx-watch="themeList.theme" class="themeSelect"></jqx-drop-down-list> </div></strong> </div> <div class="contentfilters"> <div class="filter" style="width: 150px;"> <jqx-label class="formlabel">Bank</jqx-label> <jqx-drop-down-list jqx-settings="bankDropDown" class="selectList" jqx-watch="bankDropDown.theme"></jqx-drop-down-list> </div> <div class="filter" style="width: 200px;"> <jqx-label class="formlabel">Currency Pair </jqx-label> <jqx-drop-down-list jqx-settings="curpairDropDown" class="selectList" jqx-watch="curpairDropDown.theme"></jqx-drop-down-list> </div> <div class="filter" style="width: 230px;"> <jqx-label class="formlabel">Value Date </jqx-label> <jqx-drop-down-list jqx-settings="ValueDateDropDown" class="selectList" jqx-watch="ValueDateDropDown.theme"></jqx-drop-down-list> </div> <div class="filter" style="margin-top: 11px; margin-left: 15px; width: 180px;"> <jqx-Radio-Button jqx-settings="AdvradioBtn" class="radioBtn" jqx-watch="AdvradioBtn.theme">Advanced</jqx-Radio-Button> <jqx-Radio-Button jqx-settings="SimpradioBtn" class="radioBtn" jqx-watch="SimpradioBtn.theme">Simple</jqx-Radio-Button> </div> <div class="filter" style="margin-top: 6px;"> <jqx-button jqx-settings="submitBtn" class="marketWatchBtn" jqx-watch="submitBtn.theme">Add</jqx-button> <jqx-button jqx-settings="submitBtn" class="marketWatchBtn" jqx-watch="submitBtn.theme">Save</jqx-button> </div> </div> </form> </div> </jqx-splitter> </div> </jqx-splitter> </div> </body> </html>
I am changing the themes using Dropdownlist. If I select “Metrodark” theme. that theme is only applying for “theme dropdownlist” only. its not applying for others controls like splitters, dropdownlist, buttons. I think scope is not getting for all controls. how to set the scope globally.?
Hi Kavyad23,
When you bind something to a property of undefined object, that should be expected behavior. You created widgets which have jqx-settings pointing to undefined objects and you watch for changes using jqx-watch in properties of undefined objects.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/Hi peter,
I set
$scope.theme = 'energyblue'; $scope.themeList = { width : 100, height : 18, autoDropDownHeight : true, source : $scope.themes, theme : $scope.theme };
so default is “energyblue”. then again if I change to “Metrodark” its not working.
Hi Kavyad23,
Where are the references to jQWidgets JavaScript files in this code?
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/Hi Peter,
I added “import.js” this file in my head section. this contains all Widget resources.
Hi Kavyad23,
I think that you should modify your code to something like the sample below:
<!DOCTYPE html> <html ng-app="demoApp"> <head> <title id="Description">jqxDropDownList directive for AngularJS</title> <link rel="stylesheet" type="text/css" href="../../jqwidgets/styles/jqx.base.css" /> <link rel="stylesheet" type="text/css" href="../../jqwidgets/styles/jqx.energyblue.css" /> <link rel="stylesheet" type="text/css" href="../../jqwidgets/styles/jqx.metrodark.css" /> <script type="text/javascript" src="../../scripts/angular.min.js"></script> <script type="text/javascript" src="../../scripts/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxsplitter.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxradiobutton.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxangular.js"></script> <script type="text/javascript" src="../../scripts/demos.js"></script> <script type="text/javascript"> var demoApp = angular.module("demoApp", ["jqwidgets"]); demoApp.controller("demoController", function ($scope) { $scope.themes = ["energyblue", "metrodark"]; $scope.theme = ""; $scope.themeList = { width: 100, height: 18, autoDropDownHeight: true, source: $scope.themes }; $scope.changeTheme = function (event) { $scope.theme = event.args.item.label; }; }); </script> </head> <body> <div ng-controller="demoController"> <jqx-splitter jqx-theme="theme" jqx-settings="MenuSplit"> <div class="MenuHeader"> <div class="MainTitle"> <span>FX TRADING</span> </div> </div> <div> <jqx-splitter jqx-settings="FilterSplit" jqx-theme="theme" style="overflow-x: auto;" > <div class="marketWatchFilter"> <form name="FXMWForm"> <div class="titleHeader" style="float: left; width: 100%;"> <span> Market Watch</span> <div class="themeSetter"> <label>Theme</label> <jqx-drop-down-list jqx-settings="themeList" jqx-theme="theme" jqx-on-change="changeTheme()" class="themeSelect"></jqx-drop-down-list> </div> </div> <div class="contentfilters"> <div class="filter" style="width: 150px;"> <label class="formlabel">Bank</label> <jqx-drop-down-list jqx-theme="theme" jqx-settings="bankDropDown" class="selectList"></jqx-drop-down-list> </div> <div class="filter" style="width: 200px;"> <label class="formlabel">Currency Pair </label> <jqx-drop-down-list jqx-theme="theme" jqx-settings="curpairDropDown" class="selectList"></jqx-drop-down-list> </div> <div class="filter" style="width: 230px;"> <label class="formlabel">Value Date </label> <jqx-drop-down-list jqx-theme="theme" jqx-settings="ValueDateDropDown" class="selectList"></jqx-drop-down-list> </div> <div class="filter" style="margin-top: 11px; margin-left: 15px; width: 180px;"> <jqx-radio-button jqx-theme="theme" jqx-settings="AdvradioBtn" class="radioBtn" >Advanced</jqx-radio-button> <jqx-radio-button jqx-theme="theme" jqx-settings="SimpradioBtn" class="radioBtn" >Simple</jqx-radio-button> </div> <div class="filter" style="margin-top: 6px;"> <jqx-button jqx-theme="theme" jqx-settings="submitBtn" class="marketWatchBtn" >Add</jqx-button> <jqx-button jqx-theme="theme" jqx-settings="submitBtn" class="marketWatchBtn" >Save</jqx-button> </div> </div> </form> </div> </jqx-splitter> </div> </jqx-splitter> </div> </body> </html>
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/Hi peter,
Thank you 🙂
-
AuthorPosts
You must be logged in to reply to this topic.