Для моей структуры HTML я хочу загрузить шаблон за пределами моего вызова ng-repeat
, но все же использовать данные из movie in movieGroup
вызове movie in movieGroup
.
Этот шаблон создает movie_container
div movie_container
для каждого фильма в переменной movieGroup. В movie_container
DIV У меня есть a
элемент, который вызывает состояние маршрута .test
.
.container-wrapper{"ng-repeat" => "movieGroup in movieGroups"}
.movie_container{"ng-repeat" => "movie in movieGroup | orderBy:'release_date'"}
.movie-info
%a{:href => "#", "ui-sref" => ".test({value: '{{ movie.movie_id }}' })"} More info
.big-box{"ui-view" => "test"}
Это состояние .test
,
.state('home.test',{
params: {
value: null
},
url: '',
views: {
"test":{
templateUrl: '../assets/angular-app/templates/_movie-info.html',
controller: function($scope, $stateParams, $state) {
$scope.movie = $stateParams.value
// $scope.value = $stateParams.value;
console.log (movie_id)
}
}
}
})
Как вы можете видеть, он вставляет шаблон с именем _movie-info.html
в test
представление из первого шаблона.
_movie-info.html
выглядит так:
.container-info{"ng-style" => "{'background-image':'url(https://image.tmdb.org/t/p/w1280{{movie.backdrop}})'}"}
%ul.trailers
%li{"ng-repeat" => "trailer in filteredTrailers = (trailers | filter: { movie_id: movie.movie_id})"}
%a{"ui-sref" => ".container-big-trailer({value: '{{ trailer.link }}' })"} Load trailer
.container-trailers
%div{"ui-view" => "youtube_trailer"}
Но теперь я не могу использовать такие вещи, как {{ movie.backdrop }}
или (trailers | filter: { movie_id: movie.movie_id})
.
Поэтому я надеюсь, что есть способ передать данные, которые мне нужны, для моего второго шаблона movie-info.html
.
Попробуйте передать объект фильма, а не movie_id
".test({value: '{{ movie}}' })"}
вы должны иметь возможность использовать $ scope.movie.movie_id внутри своего второго шаблона. Другой способ - использовать $scope.$parent.movie
.
ui-sref
чтобы передать объект{{ movie }}
и в контроллереhome.test
я создал область$scope.movie = $stateParams.value
которая вставляет данныеa
щелчка. Я такжеconsole.log ($scope.movie)
после, и это действительно объект фильма и данные, которые я хочу. Моя проблема сейчас в том, что я не могу получить информацию в своем шаблоне. Если я сделаюmovie title: {{ $scope.movie.title }}
илиmovie title: {{ movie.title }}
{{ }}
не будет обработан. Итак, как мне использовать данные, которые я сделал в$scope.movie
в контроллере состояния?