Я изучаю Угловое, переписывая веб-приложение JS в Angular, и у меня есть некоторые проблемы с заменой ngRoute на ui-router. Хотя я понимаю, что он предназначен для создания SPA, я только переписываю ветку страниц в угловом формате.Изменение URL-адреса URL-адреса Угловой UI-маршрутизатор
Мое настоящее понимание заключается в том, что для ui-routing вам необходимо определить корневой маршрут '/'. Шахта выглядит примерно так:
var memberPage = angular.module('memberPage', ['ui.router']);
memberPage.config(['$stateProvider', function($stateProvider){
$stateProvider
.state('userpage', {
url: '/',
template: '<h1>test</h1>',
controller: 'dashBoardController'
})
}]);
Проблема, я думаю, состоит в том, что пользователь никогда не совершает этот маршрут. Пользователь регистрируется и перенаправляется на/users /: id, а страница, отображаемая с помощью этого маршрута, загружает угловое приложение.
The (Синатр) маршрутизация, что происходит на стороне сервера до загрузки Угловой приложение:
get '/' do
redirect "/login"
end
get '/login' do
redirect_to_userpage_if_logged_in
erb :login
end
post '/login' do
redirect '/login' unless user_exists(params)
if correct_password(params)
set_session
redirect "https://stackoverflow.com/users/#{session[:user_id]}"
else
redirect '/login'
end
end
get '/users/:user_id' do |id|
@user = User.find(id)
erb :'users/index' # from this point I want to run my angular app
end
Я искал способ сказать UI-маршрутизатору, он должен рассматривать этот маршрут в качестве приложений корневой маршрут, делая url: '/users/:id'
, но это не работает.
Есть ли способ достичь того, что я ищу?
Заранее спасибо
EDIT:
Мой бог, я забыл поставить основной нг-приложение = директива «MYAPP» где-то в моем HTML, который объясняет, почему мое первоначальное состояние никогда не стал активным. Изменив это, моя первоначальная конфигурация работает отлично.
Я не уверен, удалить этот вопрос или сохранить его здесь для образовательных целей.
У меня отсутствуют некоторые данные, когда вы говорите: «Пользователь входит в систему и перенаправляется», можете ли вы предоставить код, который перенаправляется после входа в систему? Если вы имеете в виду, что пользователь перенаправляется перед выполнением каких-либо действий, добавьте маршруты на стороне сервера. –
Отредактировано, спасибо. –
вы можете попробовать добавить строку '$ urlRouterProvider.otherwise ("/");' в конфигурацию вашего маршрутизатора. Добавление сервиса соответствующим образом. –