Ich arbeite mit AngularJS $ stateProvider. Um in meiner Anwendung zu navigieren, gehen Benutzer von Staat zu Staat, mit dieser Funktion:
$rootScope.gotoState = function(stateName) {
$state.go(stateName, {}, { location: false });
};
Dieser Zustand ändern können und die neue Ansicht zu laden, ohne das Ändern der URL (Standort: false) funktioniert der Trick.
Wenn Sie jedoch die Anwendung eingeben (was auf der Seite "index.html" geschieht), lautet die angezeigte URL "myWebsite/index.html #/tab/index", wobei der Index der erste Status der Anwendung ist. Meine Frage ist: Wie kann ich es ändern, um nur "myWebsite/index.html" anzuzeigen?
HINWEIS: im Moment können Benutzer nicht die Hin-und Zurück-Schaltflächen ihres Browsers verwenden, um zu navigieren, da der Standort auf false festgelegt ist. Wenn eine Lösung vorhanden ist, die dieses Problem ebenfalls lösen würde, bin ich interessiert . Hier
ist der Zustand Erklärung:
angular.module('ionicApp', ['ionic', 'ngCookies'])
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.tabs.position('top'); // values: bottom, top
$stateProvider
.state('tabs', {
url: "/tab",
abstract: true,
templateUrl: "templates/tabs.html"
})
.state('tabs.index', {
url: "/index",
cache:false,
views: {
'index-tab': {
templateUrl: "home.html"
}
}
})
.state('tabs.profile', {
url: "/profile",
cache:false,
views: {
'profile-tab': {
templateUrl: "profile.html"
}
}
})
$urlRouterProvider.otherwise("/tab/index");
})
.run(function($rootScope, $state, $location) {
$rootScope.$state = $state;
$rootScope.$location = $location;
$rootScope.gotoState = function(stateName) {
$state.go(stateName, {}, { location: false });
};
})
Ich bin nicht sehr vertraut mit Single-Page-Anwendungen, und ich weiß nicht, ob das, was ich frage sogar möglich, mit dieser Struktur ist. Wenn nicht, wäre ich sehr glücklich zu wissen, was die beste Alternative ist.
Um Ihre Frage zu beantworten: Mir ist die Rückwärts-/Vorwärts-Taste egal, und ich stimme Ihrer Aussage vollkommen zu, dass eine eindeutige URL für mich von Vorteil ist. Die Sache ist, meine Anwendung soll sowohl auf mobilen Geräten als auch auf Desktop-Browsern funktionieren. Aus diesem Grund habe ich mich für Ionic entschieden, um eine plattformübergreifende Anwendung zu entwickeln, die überall funktioniert.Deshalb interessiere ich mich auch für die URL. – Driblou