https://plnkr.co/edit/9mFkN7oScYkKpPC0l57i?p=preview
预期的
单击Login并导航到该container
状态后。dashboard
命名的视图feed
应该呈现它们的模板。
结果
dashboard
用于和feed
不渲染的模板,也不渲染到其控制器日志中的日志。
登录状态的routerApp
随着container
模块注入。
// RouterApp module
////////////////////////////////////////////////////////////////////////////////
var tickersApp = angular.module('tickersApp', ['ui.router', 'container']);
tickersApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/login');
const login = {
name: 'login',
url: '/login',
templateUrl: 'login-template.html',
bindToController: true,
controllerAs: 'l',
controller: function($state) {
this.login = function() {
$state.go('container', { });
}
}
}
$stateProvider
.state(login);
})
容器模块/配置和视图状态
下面我有容器的默认视图及其模板和控制器,以及其他 2 个命名视图dashboard
和feed
. 但是,在单击Login并进入container
状态后,所有命名视图都不会在标记中呈现。
// Container module
////////////////////////////////////////////////////////////////////////////////
var container = angular.module('container', [ 'ui.router' ])
container.config(function($stateProvider) {
const container = {
name: 'container',
url: '/container',
views: {
'': {
templateUrl: 'container-template.html',
controller: function($scope) {
console.log('CONTAINER view $state');
}
},
'dashboard': {
templateUrl: 'dashboard-template.html',
controller: function($scope) {
console.log('DASHBOARD view $state');
}
},
'feed': {
templateUrl: 'feed-template.html',
controller: function($scope) {
console.log('FEED view $state');
}
}
}
}
$stateProvider.state(container);
});
最后是 container-template.html
下面你可以看到命名视图dashboard
和feed
,但是它们的模板和控制器不渲染/初始化。
<div class="container">
<div class="row">
<div class="col-sm-8">
<section>
<!--<dashboard-module></dashboard-module>-->
<div ui-view="dashboard"></div>
</section>
</div>
<div class="col-sm-4">
<section>
<!--<feed-module></feed-module>-->
<div ui-view="feed"></div>
</section>
</div>
</div>
</div>