Ich bin neu bei AngularJS und möchte wissen, wie ich den Status innerhalb des Controllers ändere.
Zum Beispiel ändere ich normalerweise den Status bei einem Klick auf eine Schaltfläche:
<input type="submit" class="btn btn-lg btn-primary btn-block" value="Log In" ui-sref="main.navigation"/>
Also wechselt meine Seite beim Abschicken der Schaltfläche zur Navigationsseite. Das funktioniert einwandfrei, aber wenn ich zuerst eine Logik in meinem Controller ausführen und dann anhand der Ergebnisse auf eine bestimmte Seite wechseln möchte. Wie mache ich das innerhalb des Controllers im Gegensatz zu einem Knopfdruck.
Hier ist meine modules.js, falls Sie neugierig sind:
angular.module('ecsMain', [
'ui.router',
'ui.bootstrap',
'ngTable'
])
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('main/login');
$stateProvider
.state('main', {
abstract: true,
url: '',
templateUrl: 'view/main.html'
})
.state('main.login', {
url: '',
controller: ECSMainController,
templateUrl: 'view/login.html'
})
.state('main.phoneCalls', {
url: '',
controller: AccordionDemoCtrl,
templateUrl: 'view/phoneCalls.html'
})
.state('main.navigation', {
url: '',
controller: ModalDemoCtrl,
templateUrl: 'view/navigation.html'
})
.state('main.myModalContent', {
url: '',
controller: ModalDemoCtrl,
templateUrl: 'view/myModalContent.html'
})
.state('main.alertMessage', {
url: '',
controller: ModalDemoCtrl,
templateUrl: 'view/alertMessage.html'
})
}]);
Vielen Dank
spritze $state
Service für Ihren Controller, dann in Ihrem Controller ...
CONTROLLER
$scope.changeState = function () {
$state.go('where.ever.you.want.to.go', {stateParamKey: exampleParam});
};
und füge ng-click
auf Ihre Schaltfläche
HTML
<button ng-click="changeState()">Change State</button>