Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno [AngularJS] Routing bez HashBangu

var app = angular.module("app", ["ngRoute"]);
app.config(function($routeProvider, $locationProvider) {
    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false // alebo použiť <base href=""> ale base URL nieje známa
    });

    $routeProvider
    .when("/", {
        templateUrl : "main.html"
    })
    .when("/prva", {
        templateUrl : "prva.html",
        controller : "ctrl1"
    })
    .when("/druha", {
        templateUrl : "druha.html",
        controller : "ctrl2"
    })
    .otherwise({
        redirectTo : '/'
    });
});

problém je ten že Ak by som chcel použiť <Base href=""> tak tá sa mení (teda je neznáma).

Ako zabezpečiť aby routing vedel že má routovať od úrovne kde sa nachádza index.html ? Problém je že index.html sa nenachádza v web.com/index.html ale je to web.com/neco/neco/index.html (a ja nevím to neco).

ďalšia otázka je ohladom .otherwise ktorý ale v html5Mode nieje podporovaný. Ako ale zabezpečiť aby to fungovalo aj v prípade html5Mode ?

Řešení:

Tak som to vyriešil, tag <base> pridávam do headu až po načtení stránky (ale pred načítaním routingu, obsahu a dát JSON).

(function() {
    $("base").href = '/' + window.location.pathname.split('/')[1] + "/";
  })();
Předmět Autor Datum
Tak som to vyriešil, tag <base> pridávam do headu až po načtení stránky (ale pred načítaním routingu… nový
Mlocik97 16.04.2018 14:10
Mlocik97
Tak som to ešte nevyriešil,.... narazil som troška na problém. Ako môžem zmeniť skrz JS hodnotu <bas… poslední
Mlocik97 16.04.2018 14:59
Mlocik97

Tak som to vyriešil, tag <base> pridávam do headu až po načtení stránky (ale pred načítaním routingu, obsahu a dát JSON).

(function() {
    $("base").href = '/' + window.location.pathname.split('/')[1] + "/";
  })();

Tak som to ešte nevyriešil,.... narazil som troška na problém. Ako môžem zmeniť skrz JS hodnotu <base href="/"> z externého súboru (načítaného cez relatívny link), ak index.html je v domain.com/neco/app/index.html a pred zmenením hodnoty <base href="/"> neviem načítať ten externý JS súbor ktorý by to mal zmeniť? napadlo ma načítať ten JS ešte pred tagom <base> akurát problém je pak to časovo sériovo vykonať tak aby som načítal skorej JS súbor, pak sa načítal <base> tag v index.html potom vykonať JS (zatiaľ zdržať načitávanie index.html súboru), potom zmeniť base href a potom pokračovať v načitávaní index.html.

Zpět do poradny Odpovědět na původní otázku Nahoru