私はAngular Materialとui-routerモジュールがインストールされたAngular 1.6.1 Webアプリケーションを開発しています。バックプレスの角度ui-router TypeError:a.indexOfは関数ではありません
状態から状態へのナビゲートはうまくいきますが、ブラウザの戻るボタンを押すとURLは変更されますが、状態は変わりません(ビューは同じままです)。コンソールログに次のエラーが表示されます。
TypeError: a.indexOf is not a function
at f (angular.js:438)
at m (angular.js:438)
at Object.z.transitionTo (angular.js:438)
at Array.<anonymous> (angular.js:438)
at Object.invoke (angular.js:39)
at g (angular.js:438)
at angular.js:438
at b (angular.js:438)
at n (angular.js:438)
at m.$broadcast (angular.js:146)
$stateChangeStart
にも達しません。
ブラウザの履歴スタックに何か問題があるようです。
数日前にすべてうまくいきました。それ以来何も変えていませんでした(私のgitログによるとは限りません)。私は、アプリケーションの各モジュールのファイルをルーティングのカップルを含め、この設定後
$stateProvider
//Main states
.state('main', {
abstract: true,
controller: 'MainController',
template: '<div ui-view flex layout="column"></div>'
})
.state('null', {
parent: 'main',
url: '/',
controller: function($state){
$state.go('login', {}, {location: "replace", reload: true});
}
})
//main loggedin state loading main loggedin view
.state('logged-in', {
parent: 'main',
abstract: true,
templateUrl: COMP_DIR + 'core/logged-in/logged-in.view.html',
controller: 'LoggedInController',
controllerAs: 'vm'
})
.state('no-enterprise', {
parent: 'logged-in',
abstract: true,
template: '<div ui-view flex layout="column"></div>',
controller: 'NoEnterpriseController'
})
:
マイ$stateProvider
設定が異なるファイルに分割され、最初のファイルは同類にこのように見えます。
$stateProvider
//main enterprise state
.state('enterprise', {
parent: 'logged-in',
url: '/{slug}',
controller: 'EnterpriseController',
controllerAs: 'vm',
template: '<div ui-view flex layout="column"></div>'
})
//states inside enterprise state
.state('dashboard', {
url: '/',
parent: 'enterprise',
title: 'Dashboard',
templateUrl: COMP_DIR + 'dashboard/dashboard.index.view.html',
controller: 'Dashboard.DashboardController',
controllerAs: 'vm'
})
状態変化が要素に簡単なui-sref
を追加することによってトリガされていて、それが正常に動作している、しかし、私は戻って戻って行くことができませんよ。その後、私はこのように、最後のルーティングファイルを追加しますボタンをクリックします。
誰もがこのエラーがポップアップする理由を知っていますか?そのため、戻るボタンが正しく機能していませんか?
ありがとうございます!
編集:さらに、アプリケーションをリフレッシュすると(F5キーを押して)、前の手順に進むまで戻るボタンが機能していますが、履歴スタックで前方にナビゲートしようとして同じエラーが発生します。