Tôi đang làm việc với AngularJS $ stateProvider. Để điều hướng trong ứng dụng của tôi, người dùng đi từ tiểu bang, sử dụng chức năng này:
$rootScope.gotoState = function(stateName) {
$state.go(stateName, {}, { location: false });
};
này cho phép thay đổi trạng thái và tải các quan điểm mới mà không thay đổi URL (địa điểm: false) hiện các trick.
Tuy nhiên, khi nhập ứng dụng (xảy ra trong trang "index.html"), URL được hiển thị là "myWebsite/index.html #/tab/index", chỉ mục là trạng thái đầu tiên của ứng dụng. Câu hỏi của tôi là: làm cách nào tôi có thể thay đổi nó để chỉ hiển thị "myWebsite/index.html"?
LƯU Ý: tại thời điểm này, người dùng không thể sử dụng nút quay lại của trình duyệt để điều hướng vì vị trí được đặt thành sai, vì vậy nếu giải pháp tồn tại cũng sẽ giải quyết được vấn đề này, tôi quan tâm .
Đây là tuyên bố tình trạng:
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 });
};
})
Tôi không rất quen thuộc với các ứng dụng một trang duy nhất, và tôi không biết nếu những gì tôi yêu cầu thậm chí còn có thể với cấu trúc này. Nếu không, tôi sẽ rất vui khi biết lựa chọn thay thế tốt nhất là gì.
Để trả lời câu hỏi của bạn: Tôi không quan tâm nhiều đến các nút quay lại/tiến và tôi hoàn toàn đồng ý với quan điểm của bạn, nói rằng một URL duy nhất có lợi cho tôi. Vấn đề là, ứng dụng của tôi được cho là hoạt động cả trên thiết bị di động và trình duyệt trên máy tính để bàn. Đó là lý do tại sao tôi quyết định sử dụng Ionic ngay từ đầu, vì vậy tôi có thể phát triển một ứng dụng đa nền tảng sẽ hoạt động ở mọi nơi.Đó cũng là lý do tại sao tôi quan tâm đến URL. – Driblou