2012-04-03 5 views
0

Ich baue ein Fotoalbum App mit Wirbelsäule Handy. Ich verwende "spine.relation", um eine Album-Foto-Beziehung zu modellieren.Spine.js Beziehung, erhalten nächsten und vorherigen der aktuellen Artikel

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

    @hasMany "photos", 'models/photo' 


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

Controller:

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 

Ich mag würde Referenzen zum nächsten und zurück zum vorherigen Foto haben. für die nächsten und vorherigen Funktionen. Was ist der beste Weg, um diese zu bekommen?

Antwort

1

Ich denke, der beste Weg, dies zu tun, ist eine Gewicht Eigenschaft zu Ihrem Modell hinzuzufügen und die @findByAttribute(name, value) Methode verwenden, um das Modell zu finden, dann können Sie bequem das Gewicht Wert erhöhen/verringern die nächsten erhalten/Bisherige.
Die Verwendung einer Eigenschaft zur Definition der Reihenfolge gibt Ihnen auch die Möglichkeit, die Reihenfolge Ihrer Liste leicht zu ändern.

+0

ich verstehe. Ich finde es aber über töten für das, wofür ich es brauche. Dies ist derzeit eine reine Anzeigeanwendung. Ich würde gerne eine Funktion haben, die eine Foto-ID nimmt und die nächste oder vorherige Foto-ID im Album zurückgibt. Scheint [Backbone hat diese Build in] (https://github.com/documentcloud/backbone/issues/136) – reco

+0

Wie könnte ich den Index des Fotos im aktuellen Album bekommen? – reco

+0

Kann man nur in den zugehörigen Fotos mit @findByAttribute() suchen? – reco

Verwandte Themen