AngularJS重定向到另一个ng-app模块

时间:2014-01-03 06:43:00

标签: javascript jquery html angularjs route-provider

这里是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 。但在网址中,它显示为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);也不适合我。

1 个答案:

答案 0 :(得分:1)

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

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