我通过在Angular中重写一个JS Web应用程序来学习Angular,而且我正在努力用ui-router替换ngRoute。虽然我意识到它是为了构建SPA而设计的,但我只是以角度重写了一个页面分支。
我目前的理解是,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,使用此路由呈现的页面将加载角度应用程序。
在加载角度应用程序之前在服务器端发生的(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 =&#39; myapp&#39;我的html中的某个指令,这解释了为什么我的初始状态从未变为活动状态。改变了这一点,我的初始配置完全正常。
我不确定是删除此问题还是将其保留用于教育目的。
答案 0 :(得分:1)
#
之后定义的路线是可行的。因此,/
或/users/:id#/
甚至/users#/
都可以访问定义为/#/
的路线。