моя проблема в том, что маршрутизация работает не так, как ожидалось, вот мой код:
$urlRouterProvider.
otherwise('/list');
$stateProvider.
state('home', {
abstract: true,
views: {
'header': {
templateUrl: 'partials/header.html',
controller: 'HeaderController'
},
'breadcrumb': {
templateUrl: 'partials/breadcrumb.html',
controller: function($scope) {
$scope.breadcrumb = ['Home', 'Library', 'Data'];
}
},
'sidebar': {
templateUrl: 'partials/sidebar.html'
}
}
}).
state('home.list', {
url: '/list',
views: {
'main@': {
templateUrl: 'partials/list.html',
controller: 'ListController'
}
}
}).
state('home.details', {
url: '/details/:id',
views: {
'main@': {
templateUrl: 'partials/details.html',
controller: 'DetailsController'
}
}
});
в моем индексе у меня есть это:
<div class="container">
<div class="row">
<!-- SideBar -->
<div ui-view="sidebar" class="col-xs-3 sidebar"></div>
<!-- /.SideBar -->
<div class="col-xs-8">
<!-- Breadcrumb -->
<div ui-view="breadcrumb" class="pull-right"></div>
<!-- /.Breadcrumb -->
<!-- Main Content -->
<div ui-view="main"></div>
<!-- /.Main Content -->
</div>
</div>
</div>
проблема в том, что в первый раз я вхожу в приложение (в противном случае работает нормально), но при попытке щелкнуть по гиперссылке с подробной информацией /id я получаю эту ошибку: Ошибка: не удалось разрешить "детали" из состояния "home.list", Я немного запутался прямо сейчас!
Вам нужно использовать home.details
в ui-sref вместо просто details
.
У меня есть пример, работающий в этом Plunkr.
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="person in persons">
<!-- <td><a ui-sref="details({id: persons.indexOf(person)})">{{person.name}}</a></td> -->
<td><a ui-sref="home.details({id: persons.indexOf(person)})">{{person.name}}</a></td>
<td>{{person.address}}</td>
</tr>
</tbody>
</table>