Pracuję z AngularJS $ stateProvider. Aby poruszać się w mojej aplikacji, użytkownicy przejść od stanu, przy użyciu tej funkcji:
$rootScope.gotoState = function(stateName) {
$state.go(stateName, {}, { location: false });
};
ta pozwala na zmianę stanu i załadować nowy widok bez zmiany URL (lokalizacja: false) załatwia sprawę.
Jednak podczas wchodzenia do aplikacji (co dzieje się na stronie "index.html") wyświetlany adres URL to "myWebsite/index.html #/tab/index", przy czym indeks jest pierwszym stanem aplikacji. Moje pytanie brzmi: jak mogę to zmienić, aby wyświetlać tylko "myWebsite/index.html"?
UWAGA: w tej chwili użytkownicy nie mogą korzystać z przycisków przewijania w swoich przeglądarkach, ponieważ lokalizacja jest ustawiona na wartość false, więc jeśli istnieje rozwiązanie, które rozwiązałoby ten problem, jestem zainteresowany .
Oto deklaracja stan:
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 });
};
})
nie jestem bardzo obeznany z aplikacjami pojedynczej strony, a ja nie wiem, czy to, co pytam jest nawet możliwe z tej struktury. Jeśli nie, byłbym bardzo szczęśliwy wiedząc, jaka jest najlepsza alternatywa.
Aby odpowiedzieć na twoje pytanie: nie przejmuję się zbytnio przyciskami wstecz/do przodu i całkowicie zgadzam się z twoim punktem, mówiąc, że unikalny URL jest dla mnie korzystny. Chodzi o to, że moja aplikacja ma działać zarówno na urządzeniach mobilnych, jak i na przeglądarkach komputerowych. Dlatego zdecydowałem się na użycie Ionic, więc mogę stworzyć aplikację wieloplatformową, która będzie działała wszędzie.Właśnie dlatego zależy mi na adresie URL. – Driblou