問題背景:如何重定向到主視圖頁面刷新後 - AngularJS
我已經遇到了什麼似乎是AngularJS一個共同的問題,即我在執行:
$locationProvider.html5Mode({ enabled: true, requireBase: false });
這已取消我的URL路由中的'#'反過來導致了404錯誤。我通過調整web.config和頁面現在重新加載來解決這個問題。
的問題:
我有2次叫Home.html
和Results.html
。我也有一個index.html,它放置在我的應用程序中,其中包含注入家庭和結果視圖的<div ui-view>
。
以下是所使用的路線:
http://localhost:5XXXX/ - home
http://localhost:5XXXX/results - results
我想重定向到home.html的視圖時results.html被刷新。目前,當results.html被刷新時,所有y範圍數據都會隨着指令中的jquery插件對象狀態一起丟失。
驗證碼:
app.js - 這房子的應用程序的途徑:
angular
.module('app', [
'ui.router',
'ui.bootstrap',
'ngAnimate',
'ngResource',
'rzModule',
'angular-ladda',
'jcs-autoValidate'
])
.config(['$urlRouterProvider', '$stateProvider', '$locationProvider', function ($urlRouterProvider, $stateProvider, $locationProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'home.html',
controller: 'HomeController'
})
$stateProvider.state('results', {
url: '/results',
templateUrl: 'Results.html',
controller: 'ResultsController'
})
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
}]);
ResultsController.js:
var app = angular.module('app');
app.controller('ResultsController', function ($scope, $rootScope, $timeout, $location, $anchorScroll, $window, searchService) {
//code
});
如果我刷新頁面Results.html
我怎麼能立即重定向到Home.html
視圖,而不是重新加載Results.html
頁面?
編輯:
我有以下但是這個代碼似乎並沒有在重裝被調用,它不重定向到家裏更新ResultsController.js。
var app = angular.module('app');
app.controller('ResultsController', function ($scope, $rootScope, $timeout, $location, $anchorScroll, $window, searchService) {
$rootScope.$on('$locationChangeStart', function (event) {
$state.go('/');
});
});
還補充我已經添加了以下到我的應用程序來處理重新路由的Web.config:
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
感謝您的回覆。這些代碼需要放在哪裏?在ResultsController.js中? – user1352057
是的,哥們!如果你想和run一起運行,只需在.config()後寫入主應用程序文件中.run() – KrishCdbry
再次感謝您的回覆。我編輯了我的原始帖子。儘管如此,它仍然沒有重定向到主頁。 – user1352057