更改根URL Angular UI-Router

时间:2015-03-01 07:33:49

标签: angularjs url angular-ui-router root ngroute

我通过在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中的某个指令,这解释了为什么我的初始状态从未变为活动状态。改变了这一点,我的初始配置完全正常。

我不确定是删除此问题还是将其保留用于教育目的。

1 个答案:

答案 0 :(得分:1)

#之后定义的路线是可行的。因此,//users/:id#/甚至/users#/都可以访问定义为/#/的路线。