Iniziamo con un esempio di controller globale GlobalCtrl
che viene aggiunto al tag body
o html
come ng-controller="GlobalCtrl
.
Facendo questo ci consentirà di mantenere la portata di questo GlobalCtrl
per tutta la singola pagina app angolare (come si utilizza ui-router
) e siamo in grado di evitare l'utilizzo di $rootScope
(in realtà simulando l'utilizzo di $rootScope
).
Ora, all'interno del vostro GlobalCtrl
definire qualcosa di simile:
// Using an object to avoid the scope inheritance problem of Angular
// https://github.com/angular/angular.js/wiki/Understanding-Scopes
$scope.globalData = {showSearchBar: true};
// This callback will be called everytime you change a page using ui-router state
$scope.$on('$stateChangeStart', function(event, toState, toParams) {
$scope.globalData.showSearchBar = true;
// Just check for your page where you do not want to display the search bar
// I'm using just an example like I don't want to display in contac-us page named state
if (toState.name == 'contact-us' || toParams.foo == "bar") {
$scope.globalData.showSearchBar = false;
}
});
Ora, nella vostra index.html
, basta usare ng-show
:
<div ng-show="globalData.showSearchBar">
<input type="text" ng-model="query" />
</div>
fonte
2015-12-10 14:13:54
Questa grande opera – ottz0