Jquery 使用$routeProvider管理多个视图

Jquery 使用$routeProvider管理多个视图,jquery,angularjs,Jquery,Angularjs,我开发了Angular项目,因为我使用$routeProvider进行路由 function config($routeProvider, $locationProvider) { $routeProvider .when('/', { controller: 'HomeController', templateUrl: 'home/home.view.html', controllerAs: 'vm

我开发了Angular项目,因为我使用$routeProvider进行路由

function config($routeProvider, $locationProvider) {
    $routeProvider
        .when('/', {
            controller: 'HomeController',
            templateUrl: 'home/home.view.html',
            controllerAs: 'vm'
        })

        .when('/login', {
            controller: 'LoginController',
            templateUrl: 'login/login.view.html',
            controllerAs: 'vm'
        })

        .otherwise({ redirectTo: '/login' });
}
现在的问题是,我有一个单独的布局文件,其中包含项目的页眉和页脚,这些应该包含在每个默认控制器操作中。 我已经用完$stateProvider了

routerApp.config(function($stateProvider, $urlRouterProvider) {   

$urlRouterProvider.otherwise('/home');  

$stateProvider       

    // multiviews
    .state('about', {
        url: '/about',

    data: {
    requireLogin: true  
  },
        views: {

            // the main template will be placed here (relatively named)
            '': { templateUrl: 'about.html' },

            //  the child views (absolutely named)

            // for column #1, defines a separate controller 
            'column1@about': { 
                templateUrl: 'column1.html',
                controller: 'column1Controller'
            },

            // the child views (absolutely named)
            'column2@about': { template: 'column #2!' },

            // for bottom row, defines a separate controller shares with column #1 
            'bottom-row@about': { 
                templateUrl: 'bottom.html',
                controller: 'column1Controller'
            }
        }      
    });});
但在我的项目中,我使用了$routeProvider 您可以指导我如何使用$routeProvider为标题和侧边栏创建默认布局吗?

您可以使用它包含主html中声明了ng视图的所有必要部分

主html的示例部分如下所示

<header ng-include="'path/to/header.html'"> </header>
<div class="main-body" ng-view></div>
<footer ng-include="'path/to/footer.html'"> </footer>


希望这有帮助。

我没有正确理解您的要求……我想

您已经将页眉和页脚包含在主布局中,并且需要为页眉和页脚使用单独的控制器

但是使用$rootProvider是不可能的

我的解决办法是

您可以在angular module
run
中添加页眉和页脚动作(我认为这将是全局可访问的),如下所示

myApp.run(function($rootScope) {
        $rootScope.globalFoo = function() {
            alert("I'm global foo!");
        };
    });

拥有两个路由器没有意义。。。ngRoute和ui路由器。这令人困惑。全部切换到
$stateProvider
并删除
ngRoute
dependency@charlietfl这是我最后的解决办法。。但我已经实现了$routeProvider,所以如果您有任何使用$routeProvider的解决方案,那么与ui路由器相比,Route是非常有限的。
ngRoute
ok thnxs中没有嵌套视图以获取帮助。让我给你一个简单的说明:我有两个布局,一个在登录之前,另一个在登录之后,因此如果我没有登录,那么所有未登录查看的页面的页眉和页脚都应该相同,而登录之后的页面的页眉和页脚应该相同。希望你现在明白我的意思。。而你所提供的解决方案不是;t每个场景的常见含义是登录后和登录前??