5

我有一个 angularjs SPA 应用程序,其中 index.html 页面作为主模板,其余视图作为 ng-view 标记中的子视图加载。我正在为该网站使用 twitter 引导模板,因此该模板有一个与其他页面不同的登录页面。有没有办法拥有多个主模板页面,一个用于登录页面,一个用于其他所有页面?我一直试图弄清楚如何在路由提供程序中指定不同的页面,但我无法弄清楚如何将页面而不是部分视图指定为 templateURL,或者是否可能。

我是 angularjs 的新手,所以我不确定处理这种情况的最佳方法是什么。

谢谢

4

2 回答 2

2

您与 RouteProvider 走在正确的轨道上

angular.module('mymodule', ['ngRoute'])

.config(function($routeProvider) {

    $routeProvider.
        when('/index.html/page1/', {templateUrl : './templates/template1.html'}).
        when('/index.html/page2/', {templateUrl : './templates/template2.html'}).
        otherwise({redirectTo : '/index.html/page1/'});
});
于 2014-09-12T14:46:53.297 回答
1

您必须使用ng-include. 您的主视图应如下所示

<body ng-app>
    <div id='topNav' ng-include='templateUrl' ng-controller='topNavController'></div>
    <div id='left' ng-include='templateUrl' ng-controller='leftNavController'></div>
    <div ng-view>
</body>

templateUrl可以来自服务器或使用标签预加载到客户端<script>

javascript看起来像。

function topNavController($scope, $route, $location) {
     //Check using $route or $location if login view is loaded
    // if yes $scope.templateUrl='loginTopNavTemplateUrl'
    //else $scope.templateUrl='mainNavTemplateUrl'
}

检查文档ng-include$route$location了解这些元素是如何工作的。

于 2013-10-23T13:11:39.623 回答