Я играю с новым маршрутизатором angular и хочу попробовать использовать случай, когда у меня есть компонент и вложенный компонент.
Ниже приведен код JavaScript, который я написал, чтобы определить два компонента и маршруты:
angular.module('app', ['ngNewRouter'])
.controller('AppController', function ($router) {
$router.config([
{
path: '/parent',
component: 'parent'
}
]);
})
.controller('ParentController', function ($router) {
this.name = 'Parent component';
$router.config([
{
path: '/child',
component: 'child'
}
]);
})
.controller('ChildController', function () {
this.name = 'Child component';
})
.config(function ($componentLoaderProvider) {
$componentLoaderProvider.setTemplateMapping(function (compName) {
return compName + '.html';
});
});
И часть HTML:
<!-- index.html -->
<body ng-controller="AppController as app">
<a ng-link="parent">Go to parent</a>
<div ng-viewport></div>
</body>
<!-- parent.html -->
{{ parent.name }}<br/>
<a ng-link="child">Show child</a>
<div ng-viewport></div>
<!-- child.html -->
{{ child.name }}
Здесь Plunker, содержащий код выше: http://plnkr.co/edit/yWCFgXQI491EYvIldjyR
На основе этого кода у меня есть следующие вопросы/вопросы:
- Если я перейду на самый низкий уровень (#/parent/child), а затем нажмите "Обновить", родительский и дочерний компоненты больше не отображаются. Маршрут не восстанавливается, хотя URL-адрес остается тем же. Нужно ли мне переименовывать или что-то делать для восстановления состояния страницы? Это очень простая функция, позволяющая размещать URL-адреса.
- Если я перейду на самый низкий уровень (#/parent/child), а затем нажмите ссылку "Перейти к родительскому", URL-адрес будет правильно установлен на #/parent, но дочерний компонент все еще будет виден.