更改 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#/ 甚至 /#/.

上访问