Javascript 角度嵌套视图?

Javascript 角度嵌套视图?,javascript,angularjs,twitter-bootstrap-3,Javascript,Angularjs,Twitter Bootstrap 3,我一直坚持在一个页面上使用多个控制器。 我正在建立一个网站使用引导和角度。 我有顶部的导航栏(目前用作flask中的索引html)和一个content div,其中有ng视图。content div由angular$routeProvider启动的控制器填充。在导航栏中,我有一个用户图标和一个“注销”按钮,在一个控制器调用API和用户登录后,该按钮应该会更改。如何在没有后端重定向的情况下完成? 我想我需要使用另一个角度控制器渲染导航栏,但是如何在组件之间传递事件?有中介API吗?我找到的唯一“解

我一直坚持在一个页面上使用多个控制器。 我正在建立一个网站使用引导和角度。 我有顶部的导航栏(目前用作flask中的索引html)和一个content div,其中有ng视图。content div由angular$routeProvider启动的控制器填充。在导航栏中,我有一个用户图标和一个“注销”按钮,在一个控制器调用API和用户登录后,该按钮应该会更改。如何在没有后端重定向的情况下完成?
我想我需要使用另一个角度控制器渲染导航栏,但是如何在组件之间传递事件?有中介API吗?我找到的唯一“解决方案”是基于ng switch和ng include。它似乎过于复杂,在这种情况下,我宁愿使用jinja2继承。有谁能告诉我如何使用多视图和布线构建它的正确手册吗?

您需要定义一个

这是一个将在所有控制器上共享的单例

var module = angular.module('myapp', []);

module.service('loginService', function() {
    return {loggedIn: false}
});
然后在控制器中有如下代码:

app.controller('SomeController', ['$scope', 'loginService', function($scope, loginService) {
  $scope.loginService= loginService;

  $scope.$watch('loginService.loggedIn', function(newValue, oldValue) {
       // TODO handle login/logout
   });
}]);

另一种可能的解决方案是将根作用域注入到登录服务中,并在用户登录或注销时发出事件

这是一个将在所有控制器上共享的单例

var module = angular.module('myapp', []);

module.service('loginService', function() {
    return {loggedIn: false}
});
然后在控制器中有如下代码:

app.controller('SomeController', ['$scope', 'loginService', function($scope, loginService) {
  $scope.loginService= loginService;

  $scope.$watch('loginService.loggedIn', function(newValue, oldValue) {
       // TODO handle login/logout
   });
}]);

另一种可能的解决方案是将根作用域注入登录服务,并在用户登录或注销时发出事件。使用全局变量是一种方法。ng-view不支持嵌套视图,你需要选择具有多个嵌套状态的
命名视图的
ui路由器
。查看此帖子,了解
ng视图
&
ui视图
之间的区别使用全局变量是一种方法。ng-view不支持嵌套视图,你需要选择
ui路由器
,它可能有多个嵌套状态的
命名视图
。看看这篇文章,了解
ng视图
ui视图
之间的区别。是的,我也可以自己介绍一个中介。我的观点仍然是-如何组织控制器/视图。我刚刚测试了ui路由器,它甚至不能正确处理URL中的斜杠。是的,我还可以自己引入一个中介。我的观点仍然是-如何组织控制器/视图。我刚刚测试了ui路由器,它甚至不能正确处理URL中的斜杠