js для создания двух макетов и страницы контента:
$urlRouterProvider.otherwise("/Site/Movies");
$stateProvider
.state('admin', {
url: "/Admin",
templateUrl: "/Views/Admin.html"
})
.state('site', {
url: "/Site",
templateUrl: "/Views/Site.html"
})
.state('site.movies', {
url: "/Site/Movies",
templateUrl: "/Views/Site/movies.html",
controller: 'moviesController'
})
Index.html:
<!DOCTYPE html>
<html ng-app="moviesApp">
<head></head>
<body ng-cloak>
<!--<div class="container-fluid">
<ng-view></ng-view>
</div>-->
<div ui-view></div>
<a ui-sref="site.movies">State 1</a>
</body>
</html>
Я удалил ссылки на сценарии. Site.html:
<header id="siteHeader">HEADER</header>
<div ui-view></div>
<footer id="siteFooter">FOOTER</footer>
и movies.html
<div>
<h1>List Movies</h1>
<button ng-click="getMovies()">Get Movies</button>
<span>{{error}}</span>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th>Title</th>
<th>Director</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="movie in movies">
<td>
<a href="/movies/edit/{{movie.Id}}" class="btn btn-default btn-xs">edit</a>
<a href="/movies/delete/{{movie.Id}}" class="btn btn-danger btn-xs">delete</a>
</td>
<td>{{movie.Title}}</td>
<td>{{movie.Director}}</td>
</tr>
</tbody>
</table>
<p>
<a href="/movies/add" class="btn btn-primary">Add New Movie</a>
</p>
</div>
Моя проблема только в том случае, когда я нажимаю ссылку с sref = "site.movies", она появляется, а не на загрузке страницы. Как мне сделать movie.html и сайт загрузки макета сначала. также когда я печатаю/сайт/фильмы в адресной строке movies.html не загружается.
Я нашел, что решение находится в вложенном состоянии url:
.state('site.movies', {
url: "/Site/Movies",
templateUrl: "/Views/Site/movies.html",
controller: 'moviesController'
})
должно быть:
.state('site.movies', {
url: "/Movies",
templateUrl: "/Views/Site/movies.html",
controller: 'moviesController'
})