Как обойти нг-повтор?

0

Для моей структуры 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.

Теги:
angular-ui-router

1 ответ

0

Попробуйте передать объект фильма, а не movie_id

".test({value: '{{ movie}}' })"}

вы должны иметь возможность использовать $ scope.movie.movie_id внутри своего второго шаблона. Другой способ - использовать $scope.$parent.movie.

  • 0
    Спасибо за вклад, я думаю, что у меня получилось немного. Я изменил свой 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 в контроллере состояния?
  • 0
    Можете ли вы создать планку для этого?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню