Весна + угловой GET не регистрируется

Я пытаюсь добавить простую функциональность на домашнюю страницу, которая отображает текущего вошедшего пользователя. Я отправляю GET в конечную точку / user, которая возвращает принцип. Эта угловая кривая обучения заставляет меня медленно вытаскивать все мои волосы, потому что я не могу понять, почему это не работает, когда все остальное работает. Единственная причина, по которой я могу думать о том, почему это может не работать, заключается в том, что я уже отправляю GET to /user в другой контроллер (для входа в систему), но я не знаю, почему это приведет к тому, что он даже не появится в Chrome XHR.

индекс.формат html:

                <!doctype html>
                <html ng-app="wishingWell">
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport"
                          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
                    <meta http-equiv="X-UA-Compatible" content="ie=edge">
                    <link rel="stylesheet" href="/css/normalize.css">



                    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
                    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-route.js"></script>
                    <script   src="https://code.jquery.com/jquery-3.1.1.js"   integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA="   crossorigin="anonymous"></script>
                    <script src="/javascript/app.js"></script>

                    <title>Wishing Well</title>
                </head>

                <body>
                        <nav class="nav" ng-controller="home as controller">
                            <ul class="navback">
                                <li>
                                    <a class="active" href="#/">The Well</a>
                                </li>
                                <li ng-hide="!authenticated">
                                    <a href="#/profile" >Profile</a>
                                </li>
                                <li ng-hide="authenticated">
                                    <a href="#/sign-up">Sign Up</a>
                                </li>
                                <li ng-hide="authenticated">
                                    <a href="#/login">Log In</a>
                                </li>
                                <li ng-hide="!authenticated">
                                    <a href="" ng-click="controller.logout()">Sign Out</a>
                                </li>
                                <li id="right" ng-hide="!authenticated">
                                    <p>{{controller.user.name}}</p>
                                </li>
                            </ul>
                        </nav>

                        <div ng-view></div>

                        <script src="/javascript/wishAJAX.js"></script>
                </body>
                </html>

приложение.js:

            var wishingWell = angular.module('wishingWell', [ 'ngRoute' ]);

            wishingWell.config(function($routeProvider, $httpProvider) {

                $routeProvider.when('/', {
                    templateUrl : 'home.html',
                    controller : 'home',
                    controllerAs: 'controller'
                }).when('/login', {
                    templateUrl : 'login.html',
                    controller : 'navigation',
                    controllerAs: 'controller'
                }).when('/sign-up', {
                    templateUrl : 'sign-up.html',
                    controller : 'register',
                    controllerAs: 'controller'
                }).otherwise('/');

                $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';

            });



                    wishingWell.controller('home', function($rootScope, $http, $location) {
                    var jsonResponse;
                    var jsonString;
                    var self = this;
                    self.user = {};

                    $http.get('user').then(function(response) {
                        jsonString = JSON.stringify(response.data);
                        jsonResponse = JSON.parse(jsonString);

                        self.user.name = jsonResponse.principal[0].username;
                        console.log(self.user.name);
                    });


                    self.logout = function() {
                        $http.post('logout',{}).finally(function() {
                            $rootScope.authenticated = false;
                            $location.path("/");
                        });
                    }
                });

Дайте мне знать, если есть какие-либо другие контроллеры, которые вам нужно увидеть, чтобы быть в состоянии знать, почему это не работает. Контроллер REST в Spring работает для контроллера входа в систему и очень прост, поэтому я не включил его. Родина.html вводится, но не релевантен здесь, так как я помещаю имя в последний элемент «li» в «nav», и объявил контроллер в разделе nav. Функция выхода также работает, поэтому любые идеи очень ценятся.

1 ответ

  1. Для тех, кто натыкается на это в будущем , я понял, что, поскольку мои <nav>элементы были внеng-view, этот контроллер был создан только один раз при загрузке страницы, поэтому он не будет обновляться после входа в систему. Помещать get()в функцию разрешил это.