アプリケーションに ui-router を使用しています。私のアプリケーションでは、[ユーザー ナビゲーション バー] をクリックすると、ユーザーのリストの画面に移動します。この画面で、ユーザーをクリックするとユーザー編集画面に移動し、新規ユーザーボタンをクリックするとユーザー追加画面に移動します。以下のようにルーティングします。
1. home.html
<html ng-app="app">
<head>
</head>
<body>
<div ng-controller="MainCtrl">
<ul>
<li ><a href="#">Home</a></li>
<li ><a href="#/user">List Users</a></li>
<li ><a href="#/products">List Products</a></li>
</ul>
</div>
<div >
<div ui-view></div>
</div>
</div>
<script src="angular.js"></script>
<script src="angular-ui-router.js"></script>
</body>
</html>
2. app.js
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/user')
$stateProvider.
state('user',
{url: '/user', templateUrl: 'views/user-list.html', controller: UserListController}).
state('user.edit',
{url: '/user/edit/:userId', templateUrl: 'views/user-edit.html', controller: UserEditController}).
state('add',
{url: '/user/add', templateUrl: 'views/user-add.html', controller: UserAddController})
});
3. user-list.html
<div>
<ul>
<li ng-repeat="user in userList ">
<a href="#/user/edit/{{user.uid}}">{{user.name}}</a>
</li>
</ul>
</div>
<div>
<a href="#/user/add"><button>New User</button></a>
</div>
編集ルートのネーミング状態で問題が発生します。「user」部分が正確にリスト状態の名前である名前「user.edit」を選択した場合、編集リンクをクリックすると、ui-router は編集ページにルーティングできません。「ユーザー」に階層のない名前を選択すると、編集状態に対して「編集」または「変更」と言うと、機能します。また、ルートを追加する場合は、「add」と名前を付けますが、機能します。私は何か間違っていますか?ご意見をお聞かせください。