2012-04-03 2 views
0

Я создаю приложение для фотоальбома с позвоночником. Я использую spine.relation для моделирования отношений с альбомом.Отношение Spine.js, получить следующий и предыдущий текущий номер объекта

class Album extends Spine.Model 
    @configure 'Album', .... 

    @hasMany "photos", 'models/photo' 


class Photo extends Spine.Model 
    @configure 'Photo', .... 

Контроллер:

class PhotosShow extends Panel 
    events: 
    'tap .next' : 'next' 
    'tap .prev' : 'prev' 

    constructor: -> 
    super 

    Photo.bind 'change', @render 
    @active @change 


    render: => 
    return unless @item 
    @html require('views/photos /show')(@item) 

    change: (params) -> 
    @item = Asset.find(params.id) 
    @render() 

    next: -> 
    # show next photo 

    prev: -> 
    # show previous photo 

Я хотел бы иметь ссылки на следующую и предыдущую фотографию. для следующей и предыдущей функций. Каков лучший способ получить их?

ответ

1

Я думаю, что лучший способ сделать это, чтобы добавить вес свойства вашей модели и использовать метод @findByAttribute(name, value) найти модель, то вы можете легко увеличить/уменьшить весу значения, чтобы получить следующие/предыдущая.
Использование определения для заказа также дает вам возможность легко изменять порядок вашего списка.

+0

Я понимаю. я нахожу его, хотя и убиваю за то, что мне нужно. это показное приложение только на данный момент. я хотел бы иметь функцию, которая принимает идентификатор Photo и возвращает следующий или предыдущий идентификатор фотографии в альбоме. Кажется, [позвоночник имеет эту сборку] (https://github.com/documentcloud/backbone/issues/136) – reco

+0

Как я могу получить индекс фотографии в текущем альбоме? – reco

+0

Можно ли искать только в связанных фотографиях с @findByAttribute()? – reco

Смежные вопросы