Ich habe einige Variablen & Funktionen in meinem Projekt, das ich auf jeder Seite brauche. Die Daten in Variablen kommen von Cookies & in Funktionen Ich rufe einige Dienste, um die Daten zu bekommen.Zuerst behalte ich sie in einigen Controller & mit $ rootScope für den globalen Zugriff, aber das hat nicht funktioniert, wenn ich die Seite neu laden.So Wo sollte ich diese Variablen & Funktionen halten? Vielen Dank im Vorauswo globale Variablen und Funktionen in angularjs zu halten?
Dies ist die Controller Code-
pkController.controller('domainOneController', [
'$scope',
'$cookies',
'$route',
'$location',
'$mdSidenav',
'$rootScope',
'domainService',
'subDomainService',
function($scope, $cookies, $route, $location, $mdSidenav, $rootScope,
domainService, subDomainService) {
/*getting username from cookies to display in dashboard & if not found then redirect to login page*/
$rootScope.role = $cookies.get('role');
$rootScope.userInfo = $cookies.get('login');
$rootScope.id = $cookies.get('id');
$rootScope.isSidenavOpen = false;
if ($rootScope.userInfo == undefined
|| $rootScope.role == undefined) {
$location.path("/");
}
$rootScope.$route = $route;
/*for opening slider*/
$rootScope.openSlider = function() {
$mdSidenav('left').toggle();
};
/*getting sub-domains from service & showing sub-domains of first domain on page loading*/
$scope.subDomains = subDomainService.getSubDomain(1);
$scope.subDomains.success(function(data, status, headers, config) {
$scope.subDomainNames = data.subdomains;
}).error(function(data, status, headers, config) {
});
/*switching between pages by clicking on slider & updating sub-category*/
$rootScope.redirect = function(id, domain) {
$rootScope.pageTitle = domain; //changing page title while switching between domains
$scope.subDomains = subDomainService.getSubDomain(id + 1);
$scope.subDomains.success(
function(data, status, headers, config) {
$rootScope.subDomainNames = data.subdomains;
}).error(function(data, status, headers, config) {
});
switch (id) {
case 0:
$location.path("/domain_one/dashboard");
break;
case 1:
$location.path("/domain_two/dashboard");
break;
case 2:
$location.path("/domain_three/dashboard");
break;
case 'myKpi':
$location.path("/myKpi/dashboard");
break;
}
$mdSidenav('left').toggle();
};
/*getting domains*/
$rootScope.domainNames = [];
$scope.domains = domainService.getDomain();
$scope.domains.success(function(data, status, headers, config) {
$rootScope.pageTitle = data.domains[0].Domain.name; //setting page title
for (var i = 0; i < data.domains.length; i++) {
$rootScope.domainNames.push(data.domains[i].Domain.name);
}
}).error(function(data, status, headers, config) {
});
} ]);
Seiten Dies sind HTML, wo ich diese Variablen verwenden und Funktionen-
<div layout="row" class="nav nav-stacked sliderMenu">
<md-sidenav md-component-id="left" md-is-open="isSidenavOpen">
<div layout="column" >
<md-button class="panel-button firstBlock" ng-click="openSlider()"><i class="fa fa-bars" aria-hidden="true"></i></md-button>
<md-button ng-repeat="domain in domainNames" ng-click="redirect($index,domain)" >{{domain}}</md-button>
<md-button ng-click="redirect('myKpi')">My Kpis</md-button>
<md-button class="upload">Upload</md-button>
</div>
</md-sidenav>
</div>
<!-- Menu Slider Starts -->
<div
<label>Subcategory : </label>
<md-select placeholder="All Category" ng-model="SubDomains">
<md-option ng-repeat="(key,value) in subDomainNames" value="{{value}}">{{value}}</md-option>
</md-select>
</div>
Warum nicht eine Fabrik? – ajmajmajma
Das passiert nur, wenn Sie die Seite neu laden ... oder? Wenn ja, stellen Sie sicher, dass die Variablen in Cookies gespeichert sind (sowohl vor als auch nach dem erneuten Laden). Wie auch immer, ich fühle mich nicht in rootScope zu halten ist eine gute Idee. –
Ich möchte diese Variablen und Funktionen in meinen HTML-Seiten verwenden –