Базовый шаблон не загружается при изменении состояния в Angular-ui-router - PullRequest
0 голосов
/ 06 января 2019

Я создаю веб-приложение, использующее Angular-UI-Router для обработки навигации на стороне клиента. Целевой страницей по умолчанию является «домашняя страница» с URL: «/». Шаблон на основе отправляется с сервера nodejs с помощью экспресс:

app.get('/', function(req, res) {
    res.sendFile('blank.html', {root: './public/views/pages'});
}); 

Клиентская сторона app-routes.js:

.config(['$stateProvider', '$urlRouterProvider', 
 function ($stateProvider, $urlRouterProvider){
    // Redirect to '/' in case of unmatched url
    $urlRouterProvider.otherwise('/');

    // Setup the states
    $stateProvider
        .state('home', {
            abstract : true,
            // Note: abstract still needs a ui-view for its children
            // to populate
            template : '<ui-view/>'
        })
        .state('home.homepage', {
            url: '/',
            templateUrl: '/views/partials/homepage.html',
            controller: ''
        }).state('home.sign-in', {
            url: '/sign-in',
            templateUrl: '/views/partials/login.html',
            controller: 'AuthenticationCtrl'
        });
   $stateProvider.state('user', {
           abstract : true,
           url: '/user',
           templateUrl : '/views/pages/user-profile.html',
           template: '<ui-view/>',
           onEnter: function(){
             console.log("enter state");
           }
        }).state('user.products', {
           url: '/user/products',
           templateUrl: '/views/partials/products.html',
           controller: 'ProductCtrl'
        });

При вводе / загружается шаблон blank.html и в теге <div ui-view/> заменяется homepage.html. Перейдите на /sign-in и успешно войдите в систему с учетными данными пользователя, установите состояние, чтобы перейти к user.products

$scope.login = function (credentials) {
            Auth.signin(credentials).then(function (data) {
                Principle.setToken(data.data, $scope.remember_me);
                $state.go('user.products', {});
            }, function (res) {
                $scope.message = res.message;
                $state.go('home.sign-in', {});
            });
        }

Проблема здесь в том, что основанный шаблон user-profile.html никогда не загружается. Всегда отображается blank.html шаблон

Структура проекта:

---public     
       js
         +----app.js
         +----app-routes.js
       views
         +--pages
              +---blank.html
              +---user-profile.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...