这里是AngularJS的新手。

我使用Yeoman,grunt和bower创建了一个AngularJS应用程序。

索引页面包含一些样式以及ng-app和ng-view。

index.html

<html>
  <head>
      <!-- CSS Imports -->
   </head>
   <body ng-app="MyApp1">
      <div>
          //Some divs here to  have some styles

          <div ng-view></div>
      </div>
    </body>
    <!--importing AgularJS, app.js, controller JS files -->
</html>


app.js

'use strict';

angular.module('MyApp1', [])
  .config(function ($routeProvider,$locationProvider) {
    $routeProvider
        .when('/', {
          redirectTo: '/main'
        })
      .when('/invoice', {
        templateUrl: 'views/invoice.html',
        controller: 'UploadController'
      })
      .when('/main', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/login', {
            templateUrl: 'views/login.html',
          })
      .otherwise({
        redirectTo: '/main'
      });
//    $locationProvider.html5Mode(true);
  });

    angular.module('LoginApp', [])
    .config(function ($routeProvider,$locationProvider) {

    });


索引页面具有ng-view,将显示invoice.html或main.html。默认值为main.html
main.html

<div class="hero-unit">
  <a ng-href="views/login.html" target="_self">Login</a>
  <br>
  <a ng-href="#invoice">New Document</a>

</div>


好。在此main.html中,我有两个链接。第二个是发票链接。无论如何,它将显示在index.html ng-view中。控制器UploadController属于MyApp1模块。并且它具有单独的JS文件。一切正常。

第一个链接是另一个HTML页面。其login.html。它还有一个名为LoginApp的ng-app。这两个模块都是独立的,并且位于不同的页面中。

当我单击第一个链接时,它将转到login.html。但是在URL中,它显示为http://localhost:9000/views/login.html。但是我希望它像http://localhost:9000/login一样显示,就像其他main.html(http://localhost:9000/#/main)一样。当我编辑<a ng-href="#login">Login</a>之类的链接时,它不起作用。

而且$locationProvider.html5Mode(true);不适用于我。

最佳答案

将login.html放在与index.html相同的文件夹中。

我认为不可能路由到另一个模块。但是,login.html的此路由规则不适用于(外部)页面。

10-07 19:58
查看更多