以下はapp.jsファイルです
angular
.module('repoApp', [
'ngAnimate',
'ngAria',
'ngCookies',
'ngMessages',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'ui.bootstrap',
'ui.router'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl'
})
.when('/login', {
templateUrl: 'views/loginPage.html',
controller: 'loginCtrl'
})
.otherwise({
redirectTo: '/'
});
});
angular
.module('loginState',['ui.router']);
以下は私の状態ファイルです
angular
.module('repoApp')
.config(function ($stateProvider) {
$stateProvider.state('home1', {
url:'/home1',
templateUrl: 'views/modals/test.html'
})
.state('secondState',{
url:'/secondState',
templateUrl: 'views/modals/secondStateTest.html'
});
});
問題は、私のHTMLを使用してログインページに移動することです。
<ul class="nav navbar-nav">
<li class="active"><a href="#/">Home</a></li>
<li><a ng-href="#/about">About</a></li>
<li><a ng-href="#/">Contact</a></li>
<li class="loginShift"><a ng-href="#/login">Login</a></li>
</ul>
しかし、フローがコントローラにヒットするとすぐに状態に到達しようとしています
angular.module('repoApp')
.controller('loginCtrl', function ($scope,$modal,$state) {
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
$state.go('home1');
$scope.openDialog = function () {
$modal.open({
keyboard: 'static',
templateUrl: 'views/login/loginCred.html',
});
};
});
しかし、私は本国に行くことができません。状態ファイルを変更した場合、つまり
$stateProvider.state('home1', {
url:'/login',
templateUrl: 'views/modals/test.html'
})
ここでURLを変更しました。今は正常に動作します。
次の状態に移動したい場所からテンプレートがあります
<div>
<button data-ng-click="openDialog()">open ME!</button>
<div><a ui-sref="secondState">click here</a></div>
</div
しかし、このアンカータグをクリックすると、すぐにホームページに戻ります。すなわち、私が行くつもりの状態にない。主な問題は、URL(私が推測する)すべての助けをいただければ幸いです。
ngRoute
とUI-router
の両方を使用しないでください。 UIルーターのサンプルコードを次に示します。
repoApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html",
controller: 'YourCtrl'
})
.state('state2', {
url: "/state2",
templateUrl: "partials/state2.html",
controller: 'YourOtherCtrl'
});
$urlRouterProvider.otherwise("/state1");
});
//etc.
このスレッドでは、これら2つの違いに関する優れた答えを見つけることができます。 angular-routeとangular-ui-routerの違いは何ですか?
こちらのUI-Routerのドキュメントもご覧ください: https://github.com/angular-ui/ui-router