更改 root URL Angular UI-路由器
Changing root URL Angular UI-Router
我正在通过重写 Angular 中的 JS Web 应用程序来学习 Angular,并且我在用 ui-router 替换 ngRoute 时遇到了一些困难。虽然我知道它是为 build SPA 设计的,但我只是重写了 angular 中的一个页面分支。
我目前的理解是ui-routing requires让你定义根路由'/'。我的看起来像:
var memberPage = angular.module('memberPage', ['ui.router']);
memberPage.config(['$stateProvider', function($stateProvider){
$stateProvider
.state('userpage', {
url: '/',
template: '<h1>test</h1>',
controller: 'dashBoardController'
})
}]);
问题 - 我认为 - 是用户从来没有点击过这条路线。用户登录并被重定向到 /users/:id,使用此路由呈现的页面加载 angular 应用程序。
加载 angular 应用程序之前在服务器端发生的 (sinatra) 路由:
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 "/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-router 它应该将该路由视为应用程序的根路由,方法是 url: '/users/:id'
,但这不起作用。
有什么方法可以实现我想要的吗?
提前致谢
编辑:
我的天啊,我忘了把基本的 ng-app='myapp' 指令放在我的 html 的某个地方,这解释了为什么我的初始状态从未激活。更改后,我的初始配置工作得很好。
我不确定是删除这个问题还是为了教育目的将其保留在这里。
定义的路由在#
之后是可行的。因此定义为 /
的路由将可以在 /users/:id#/
或 /users#/
甚至 /#/
.
上访问
我正在通过重写 Angular 中的 JS Web 应用程序来学习 Angular,并且我在用 ui-router 替换 ngRoute 时遇到了一些困难。虽然我知道它是为 build SPA 设计的,但我只是重写了 angular 中的一个页面分支。
我目前的理解是ui-routing requires让你定义根路由'/'。我的看起来像:
var memberPage = angular.module('memberPage', ['ui.router']);
memberPage.config(['$stateProvider', function($stateProvider){
$stateProvider
.state('userpage', {
url: '/',
template: '<h1>test</h1>',
controller: 'dashBoardController'
})
}]);
问题 - 我认为 - 是用户从来没有点击过这条路线。用户登录并被重定向到 /users/:id,使用此路由呈现的页面加载 angular 应用程序。
加载 angular 应用程序之前在服务器端发生的 (sinatra) 路由:
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 "/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-router 它应该将该路由视为应用程序的根路由,方法是 url: '/users/:id'
,但这不起作用。
有什么方法可以实现我想要的吗?
提前致谢
编辑:
我的天啊,我忘了把基本的 ng-app='myapp' 指令放在我的 html 的某个地方,这解释了为什么我的初始状态从未激活。更改后,我的初始配置工作得很好。
我不确定是删除这个问题还是为了教育目的将其保留在这里。
定义的路由在#
之后是可行的。因此定义为 /
的路由将可以在 /users/:id#/
或 /users#/
甚至 /#/
.