index.html:
<body>
<div ui-view="header"></div>
<div ui-view></div>
<div ui-view="footer"></div>
<div id="footer" class="container" />
</body>
app.js:
.state('root', {
url: '',
abstract: true,
views: {
'header': {
templateUrl: 'views/header.html',
controller: 'HeaderCtrl'
},
'footer': {
templateUrl: 'views/footer.html'
}
},
data: {
requiresLogin: true
}
}).state('root.home', {
url: '/',
views: {
'@': {
templateUrl: 'views/home.html',
controller: 'HomeCtrl'
}
},
data: {
requiresLogin: true
}
})
Поэтому у меня есть верхний и нижний колонтитулы, которые вызываются и отображаются на экране, но по какой-то причине мой home.html не отображается. На данный момент home.html просто включает в себя заголовок h1 в "Home". Кажется, что пространство создается для контента, но оно просто не показывает его.
Попробуйте это
.state('root', {
url: '',
abstract: true,
views: {
'header': {
templateUrl: 'views/header.html',
controller: 'HeaderCtrl'
},
'main': {
template: '<div>This is default main content placeholder</div>'
},
'footer': {
templateUrl: 'views/footer.html'
}
},
data: {
requiresLogin: true
}
}).state('root.home', {
url: '/',
views: {
'main@': {
templateUrl: 'views/home.html',
controller: 'HomeCtrl'
}
},
data: {
requiresLogin: true
}
})
и в index.html:
<body>
<div ui-view="header"></div>
<div ui-view="main"></div>
<div ui-view="footer"></div>
<div id="footer" class="container" />
</body>