Ich habe mein Backend-Web-Framework, das meine AngularJS-App mit folgender URL lädt
http://localhost/New/Alpha/App
Ich habe es auch so eingerichtet, dass alles nach App
immer noch dasselbe lädt
http://localhost/New/Alpha/App/home
http://localhost/New/Alpha/App/settings
...
Ich versuche, meine AngularJS-App so zu gestalten, dass sie den Teil der URL nach App
abholt und entsprechend einen Controller/Template lädt. Ich habe allerdings ein Problem mit der Routenführung in meiner AngularJS-App
var main = angular.module("main", ["ui.bootstrap", "ngRoute"]);
main.config(function($routeProvider, $locationProvider) {
$routeProvider
.when("home", {
templateUrl: "assets/tpl/home.html",
controller: "mainController"
})
.otherwise({
redirectTo: "fail"
});
$locationProvider.html5Mode(true);
});
main.controller("mainController", function($scope) {
console.log("home")
});
Wenn ich diese URL versuche
http://localhost/New/Alpha/App/home
ändert sich die URL zu
http://localhost/fail
anstatt die URL wie sie ist zu belassen und das Template/den Controller zu laden. Wenn ich jedoch die Konfiguration ändere und ihr eine vollständige relative URL gebe, funktioniert es wie vorgesehen
.when("/New/Alpha/App/home", {
templateUrl: "assets/tpl/home.html",
controller: "mainController"
})
Mein Problem ist, dass der Teil der URL vor App
- /New/Alpha
nicht fest codiert sein kann. Es könnte /New/Beta
, /New/Gamma
, usw. sein.
Ist es überhaupt möglich, das zu tun, ohne den vollständigen relativen URL-Abgleich fest zu codieren?
UPDATE Entschuldigung, ich habe vergessen zu erwähnen, dass sich die Anzahl der URL-Segmente vor App
ändern kann, d.h. es könnte /New/Beta/App
oder auch /New/Another/Beta/App
sein. Ich nehme nicht an, dass so etwas wie */App
oder /New/*/App
möglich ist, anstelle von /New/:placeholder/App
?