Я пытаюсь установить мое приложение для работы с 2-х раскладками (один без боковых панелей, одна с 2-х боковыми панелями), это мое решение:пустой страницы ввода приложения
$stateProvider
.state('main', {
url: "/",
abstract:true,
templateUrl: "/layouts/main.html"
})
.state('sidebars', {
url: "/",
abstract:true,
templateUrl: "/layouts/two-sidebar.html"
})
.state('home', {
parent:'main',
templateUrl: "/partials/home.html"
})
.state('about', {
url: "about",
parent:'sidebars',
templateUrl: "/partials/about.html"
})
main.html
<div class="container">
<div ui-view class="view"/>
</div>
два-sidebar.html
<div class="container-fluid">
<div class="row">
<div class="col-md-2">leftcontent</div>
<div class="col-md-8">
<div ui-view class="view"></div>
</div>
<div class="col-md-2">rightcontent</div>
</div>
</div>
Я уверен, что есть лучшие решения, но при этом все прекрасно работает. Единственная проблема - когда я нахожусь на корневой странице /#/
при первом запуске пустой страницы, когда я нажимаю на home
, URL-адрес тот же, но он отлично работает.
Чтобы быть более ясным, здесь plunker, чтобы увидеть эту проблему, вы должны открыть его во внешнем окне (синяя кнопка в окне предварительного просмотра): http://plnkr.co/edit/Q4cZM69hn0lutYEYjmxH?p=preview
EDIT: Похоже, что основные проблема была отсутствует пустой URL
.state('home', {
url:"",
parent:'main',
templateUrl: "/partials/home.html"
})
Что вы хотите, так как дети заявляют? Не совсем понятно, каковы ваши намерения здесь. Предложите прочитать раздел вложенных состояний документов. – charlietfl