AngularJS пренасочва към друг модул на ng-app

начинаещ в AngularJS тук.

Създадох едно AngularJS приложение, използвайки Yeoman, grunt и bower.

Индексната страница съдържа малко стил и 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="/bgviews/login.html" target="_self">Login</a>
  <br>
  <a ng-href="/bg#invoice">New Document</a>

</div>

Добре. В този main.html имам две връзки. Второ е връзка към фактура. Това така или иначе ще се покаже вътре в index.html ng-view. Контролерът UploadController принадлежи към модул MyApp1. И има отделен JS файл. Работи добре.

Първата връзка е към друга HTML страница. Това е login.html. Има друго ng-app, наречено LoginApp. И двата модула са независими и в различни страници.

Когато щракна върху първата връзка, тя отива към login.html. Но в URL адреса се показва като http://localhost:9000/views/login.html. Но искам да се показва като http://localhost:9000/login, точно както за друг main.html (http://localhost:9000/#/main). Когато редактирах връзката като <a ng-href="/bg#login">Login</a>, тя не работи.

Освен това $locationProvider.html5Mode(true); не ми работи.


person Shiju K Babu    schedule 03.01.2014    source източник
comment
просто промяната на ng-href="views/login.html" на ng-href="/login" не работи?   -  person YOU    schedule 03.01.2014


Отговори (1)


Поставете login.html в същата папка като index.html.

Мисля, че не е възможно да се насочи към друг модул. Това правило за маршрут обаче за login.html няма да работи за (външна) страница.

person Mark    schedule 03.01.2014
comment
Знаете ли друг начин? - person Shiju K Babu; 03.01.2014
comment
Поставете login.html в същата папка като index.html и оставете външната връзка ‹a ng-href=/login.html target=_self›Login‹/a› - person Mark; 03.01.2014
comment
Въпреки това URL адресът не се променя - person Shiju K Babu; 03.01.2014
comment
Здравейте, как мога да добавя правило за маршрутизиране във втория модул? Когато добавя модула .when('/loginr', { templateUrl: 'views/login.html' }); inside LoginApp, получавам Uncaught Error: No module: LoginApp - person Shiju K Babu; 03.01.2014
comment
mc: няма правило за маршрутизиране, само ‹a href=login.html target=_self›Login‹/a› - person Mark; 03.01.2014