在 AngularJS 中,路由(Routing)和多视图(Multiple Views)结合使用可以帮助你构建单页应用程序(Single Page Application,SPA)。路由用于在不同的 URL 和视图之间导航,而多视图允许你在同一个页面上同时显示多个视图。以下是一个简单的示例,演示了如何使用 AngularJS 路由和多视图:

1. HTML 模板:
<!DOCTYPE html>
<html ng-app="myApp">

<head>
  <title>AngularJS 路由与多视图</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular-route.js"></script>
</head>

<body>

  <div ng-view></div>

  <script>
    var app = angular.module('myApp', ['ngRoute']);

    // 配置路由
    app.config(function ($routeProvider) {
      $routeProvider
        .when('/', {
          templateUrl: 'views/home.html',
          controller: 'HomeController'
        })
        .when('/about', {
          templateUrl: 'views/about.html',
          controller: 'AboutController'
        })
        .when('/contact', {
          templateUrl: 'views/contact.html',
          controller: 'ContactController'
        })
        .otherwise({
          redirectTo: '/'
        });
    });

    // 控制器的定义
    app.controller('HomeController', function ($scope) {
      $scope.message = 'Welcome to the Home Page!';
    });

    app.controller('AboutController', function ($scope) {
      $scope.message = 'Learn more About Us.';
    });

    app.controller('ContactController', function ($scope) {
      $scope.message = 'Contact Us for any inquiries.';
    });
  </script>

</body>

</html>

2. 视图模板(views/home.html,views/about.html,views/contact.html):

    - home.html:
    <h1>{{ message }}</h1>
    <p>This is the home page.</p>

    - about.html:
    <h1>{{ message }}</h1>
    <p>Learn about our company.</p>

    - contact.html:
    <h1>{{ message }}</h1>
    <p>Contact us for more information.</p>

在这个示例中,ngRoute 模块用于处理路由。$routeProvider 被用来配置路由,并且每个路由都指定了相应的模板和控制器。ng-view 指令用于显示当前路由的视图。

请确保在实际应用中使用 HTTPS 协议加载 AngularJS 库,以确保安全性。此外,为了运行上述示例,你需要一个支持服务器端路由的 Web 服务器。如果只是本地测试,可以使用一些工具如 Live Server 或 HTTP Server 来模拟服务器环境。


转载请注明出处:http://www.pingtaimeng.com/article/detail/4889/Angular