Как я должен повторить по множеству в emberjs и обновить маршрут, чтобы отразить изменение?

Я пытаюсь сделать слайд-шоу изображения со следующими/предыдущими кнопками, но я не понимаю, как я должен заставить его работать все вместе. Кто-то может помочь мне склеить части?

Это - то, как данные похожи:

{
  "newsitems": [
    {
      "id": "1",
      "title": "Amai het wordt bangelijk!",
      "mediaitems": [
        {
          "id": "AEOpX8tmiUI",
          "newsitem_id": "1",
          "value": "AEOpX8tmiUI"
        },
        {
          "id": "kxopViU98Xo",
          "newsitem_id": "1",
          "value": "kxopViU98Xo"
        },
        {
          "id": "1",
          "newsitem_id": "1",
          "value": "1276468632.JPG"
        },
        {
          "id": "3",
          "newsitem_id": "1",
          "value": "1278286227.jpg"
        }
      ]
    }
  ]
}

Я хотел бы позволить пользователю повторить множество mediaitems. Таким образом, когда пользователь входит в маршрут:

http://domain.com/#!/newsitems/1/overlay/kxopViU98Xo

Тот пункт должен быть в центре экрана, и следующая/предыдущая кнопка должна взять пользователя к следующему или предыдущему пункту во множестве.

Это - то, как мой маршрут похож:

App.MediaitemRoute = Ember.Route.extend({
  model: function(params) {
    return App.Mediaitem.find(params.mediaitem_id);
  },

  setupController: function(controller, model) {
    this.controllerFor('overlay').set('content', model);
  },

  renderTemplate: function(controller, model) {
    this.render('overlay', { into: 'application', outlet: 'overlay', controller: 'overlay'});
  }
});

И это - ObjectController для наложения:

App.OverlayController = Ember.ObjectController.extend({
  prev: function(){
    var mediaitems = this.get('model').get('newsitem.mediaitems');
    var currentMediaItemID = this.get('model').get('id');

    var currentIndex = 0;
    var i = 0;

    mediaitems.forEach(function(object){
      if(object.get('id') == currentMediaItemID) currentIndex = i;
      i++;
    });

   //How should I transition to the next object?
  }
});

Маршрут отдает шаблон, названный "наложение', у которого есть два действия: "предыдущий" и "следующий" (я только показываю предыдущий в моем диспетчере, чтобы содержать вещи в чистоте).

Мои две проблемы: код к поиску currentitem во множестве (и код, чтобы получить следующий или предыдущий объект) просто чувствуют себя 'неправильными' или 'чрезмерно сложными'.

Я не знаю, как обновить маршрут и перенаправление к следующему/предыдущему пункту.

Некоторый более полезный материал:

Шаблон рулей:

<script type="text/x-handlebars" data-template-name="overlay">
  <div class="overlay">
    PREV
    NEXT
  </div>
</script>

My models:

App.Newsitem = DS.Model.extend({
  title: DS.attr('string'),

  mediaitems: DS.hasMany('App.Mediaitem')
});

App.Mediaitem = DS.Model.extend({
  value: DS.attr('string'),

  newsitem: DS.belongsTo('App.Newsitem')
});

My routes:

App.Router.map(function(){
  this.resource('newsitems', function(){
    this.resource('newsitem', {path:':newsitem_id'}, function(){
      this.resource('mediaitem', {path:'/overlay/:mediaitem_id'});
    });
  });
});
1
nl ja de
Когда-нибудь понимайте это?
добавлено автор Sam Selikoff, источник
Вы решали это?
добавлено автор Hese, источник

Ответов нет

0
Ember_js
Ember_js
153 участник(ов)

Cообщество Ember.js