当前位置: 首页 > 面试题库 >

Angular UI Router:具有相同URL的不同状态?

长孙嘉
2023-03-14
问题内容

我的应用程序的登录页面有两种状态:home-publichome-logged- in。现在,我想在同一URL上显示这两种状态,但让控制器和模板取决于用户会话(用户是否登录?)。

有没有办法做到这一点?


问题答案:

您可以有一个基本状态来控制要加载的状态,并且可以简单地让声明该基本状态的子级没有url:

.state('home', {
  url: "/home",
  templateUrl: "....",
  controller: function($scope,$state,authSvc) {
     if(authSvc.userIsLoggedIn()){
          $state.go('home.loggedin')
     }else{
          $state.go('home.public')
     }
  }
})


.state('home.public', {
  url: "",
  templateUrl: "....",
  controller: function($scope) {
     ...........
  }
})

.state('home.loggedin', {
  url: "",
  templateUrl: "....",
  controller: function($scope) {
     ...........
  }
})

现在,在基本状态(home)的控制器中,您可以检查用户是否已登录,并用于$state.go()加载适当的状态。

编辑

如所承诺的那样,正在努力工作。



 类似资料:
  • ...NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径的处理程序方法不明确...

  • 问题内容: 我想使用JLabel(Icon)来显示来自我网站(http://xxx.xxx.xxx.xxx/java_pic/test.jpg)的图像。我有一个刷新按钮来新建一个新的JLabel和ImageIcon(以获取最新的图像)该程序成功运行…但是当我上载新图像以覆盖旧图像时(http://xxx.xxx。 xxx.xxx/java_pic/test.jpg ),我按了刷新按钮…什么都没发生

  • 问题内容: 我想了解最佳实践,即如何在AngularJS中设置路由和模板,以向访问者显示不同的前台和登录区域,然后显示仪表板以在相同的基本URL(’/’)上登录用户。 这两页在结构上完全不同,并且还需要不同的资产。 为网站的两个部分设置两个不同的应用程序是否更好,但是我将如何管理这两个部分之间的会话? 还是在主体标签之间没有任何内容的“空”布局将不同的模板加载到其中,并为前部分和仪表板部分进行单独

  • 当我在实现的bean中取消对接口的注释时,服务器启动时不会出现任何错误。我错过了什么?

  • 我有一个场景,其中一个url“serachUser”可能带有两个不同的值(请求参数)userId或UserName。 为此我创造了两种方法 但我得到模糊映射发现异常。Spring能处理这种情况吗?

  • 我的目标: <代码>http://host:port/myApp/about返回一个名为about的jsp页面。jsp 我的web.xml: 我的servlet.xml(使用Spring 3.0.3. RELEASE): 我的控制器: 在服务器(jetty 6,servlet api 2.5)启动时,我看到: 上述目标的设置结果: > 产生错误: 我检查/尝试过的事情: > 确实存在 我已经在这两