webentwicklung-frage-antwort-db.com.de

AngularJS - Wie ändere ich den Status im Inneren des Controllers?

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

37
anad2312

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>
76
Poyraz Yilmaz