Я пытаюсь получить вложенные представления для работы, в которых после входа в систему он отправляет вас в in.html
там все ссылки ссылаются на ui-view
внутри in.html
. В настоящее время все ссылки переходят на "новую" страницу
index.html
<!-- more HTML -->
<body ng-controller="MainController as main">
<!--<div id="loading"><span>Loading</span></div>-->
<div ui-view="default"></div>
</body>
<!-- more HTML -->
in.html
<a ui-sref="online">Online Users</a>
<div ui-view="main"></div>
маршруты app.js
var $td = $config.TPL_DIR;
$stateProvider
.state('auth', {
url: '/auth',
views: {
"default": {
controller: 'AuthController as auth',
templateUrl: $td + 'login.html'
}
}
})
.state('loggedin', {
url: '/in',
views: {
"default": {
templateUrl: $td + 'in.html'
}
}
})
.state('online', {
url: '/online',
views: {
"main": {
controller: 'OnlineController as online',
templateUrl: $td + 'online.html'
}
}
});
Попробуйте сделать некоторые подзаголовки, а затем измените ui-view. Что-то вроде
.state('loggedin.another_view', {
url: '',
views: {
"main": {
templateUrl: $td + 'partial.html'
}
}
})
Поскольку loggedin
является родительским представлением, когда маршрутизатор ищет main
, он будет искать контекст loggedin
для представления. Он будет загружать partial.html
в ваше представление.
Изменено состояние loggedin.online
.state('loggedin.online', {
url: '/online',
views: {
"main": {
controller: 'OnlineController as online',
templateUrl: $td + 'online.html'
}
}
});
Изменить ссылку на
<a ui-sref=".online">Online Users</a>
<div ui-view="main"></div>