Javascript 使用ui路由器和AngularJS仅更改一个视图

Javascript 使用ui路由器和AngularJS仅更改一个视图,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,假设你有一个网站有三条不同的路线,/news,/about,和/signup 新闻和关于是他们自己的“页面”,而注册只是一个覆盖,可以在/News或/about上切换 如果您访问/news或/about上的/signup,则在注册覆盖下仍然可以看到相应的页面。如果直接转到/signup,它会在下面显示站点的根目录(/news,为了清晰起见) 这可能吗?是否可以使用AngularJS和ui路由器(或AngularRouter?)拥有多个视图和各种路由,这些视图和路由可以更改一个视图,而另一个视图保

假设你有一个网站有三条不同的路线,
/news
/about
,和
/signup

新闻和关于是他们自己的“页面”,而注册只是一个覆盖,可以在
/News
/about
上切换

如果您访问
/news
/about
上的
/signup
,则在注册覆盖下仍然可以看到相应的页面。如果直接转到
/signup
,它会在下面显示站点的根目录(
/news
,为了清晰起见)

这可能吗?是否可以使用AngularJS和ui路由器(或AngularRouter?)拥有多个视图和各种路由,这些视图和路由可以更改一个视图,而另一个视图保持不变

我看了一下这个链接:

但它所做的似乎只是为
ui视图定义一个默认值,如果当前路由中没有声明任何值

设置非常基本:

<div class="main" ui-view="main"></div>
<div class="overlay" ui-view="overlay"></div>


我想通过url激活
overlay
视图,而不更改
main

中显示的内容。你不是说登录而不是注册吗? 是的,这是可能的。使用三种状态

$stateProvider.state("signup", {
    url: "/signup",
     views: {
                "overlay": {
                    templateUrl: "signup.html",
                    controller: "SignupController"
                },
                "main": {
                    templateUrl: "news.html",
                    controller: "NewsController"
                }
              }    
  })


  .state("news", {
         url: "/news",
         views: {
                "overlay": {
                    templateUrl: "signup.html",
                    controller: "SignupController"
                },
                "main": {
                    templateUrl: "news.html",
                    controller: "NewsController"
                }
              }    
  })

.state("news", {
         url: "/about",
         views: {
                "overlay": {
                    templateUrl: "signup.html",
                    controller: "SignupController"
                },
                "main": {
                    templateUrl: "about.html",
                    controller: "AboutController"
                }
              }    
  });
注册覆盖模板将在所有三种状态下加载。 如果已加载注册URL(注册状态), 如果用户未登录,则显示覆盖 否则去新闻状态

如果用户直接转到新闻或关于URL, 如果用户未登录,则显示覆盖 否则不显示覆盖

您可以使用状态解析检查用户是否登录,然后隐藏/显示它