2013-06-07 3 views
1

Я пытаюсь установить вложенные стеки в Spine.js.Spine.js - Как установить вложенные стеки

Хотя я скопировал код, который, похоже, работает для других (https://gist.github.com/MikeSilvis/2839845) и скорректировал имя модели контроллера &, он не работает. Оба стека отображаются совершенно правильно, ошибок в консоли тоже нет. Но - если я не полностью неправильно понимаю использование вложенных стеков - они не вложены в корневой стек. Есть ли что-то, что я должен добавить в представлениях?

index.coffee:

class App extends Spine.Controller 

    constructor: -> 
    super 
    new Spine.SubStack 
    Spine.Route.setup() 

    @append(@groups = new App.Groups) 
    @append(@people = new App.People) 

class App.Root extends Spine.Stack 
    $.fn.item = -> 
    elementID = $(@).data('id') 
    elementID or= $(@).parents('[data-id]').data('id') 
    Person.find(elementID) 
    controllers: 
    groups: App.Groups 
    people: App.People 

    routes: 
    '/groups' : 'groups' 
    '/people' : 'people' 

    default: 'people' 
    className: 'stack root' 

class Spine.SubStack extends Spine.Stack 

    constructor: -> 
    for key,value of @routes 
     console.log [key, value].join(" | ") 
     do (key,value) => 
     @routes[key] = => 
      @active() 
      @[value].active(arguments...) 
    super 

window.App = App 

в groups.coffee:

class App.Groups extends Spine.SubStack 
    controllers: 
    index: Index 
    edit: Edit 
    show: Show 
    new: New 

    routes: 
    '/groups/new':  'new' 
    '/groups/:id/edit': 'edit' 
    '/groups/:id':  'show' 
    '/groups':   'index' 

    default: 'index' 
    className: 'stack groups' 

в people.coffee:

class App.People extends Spine.SubStack 
    controllers: 
    index: Index 
    edit: Edit 
    show: Show 
    new: New 

    routes: 
    '/people/new':  'new' 
    '/people/:id/edit': 'edit' 
    '/people/:id':  'show' 
    '/people':   'index' 

    default: 'index' 
    className: 'stack people' 

Аль l маршруты по-прежнему работают после добавления этого кода, но нет корневого стека.

Надеюсь, кто-то, у кого больше опыта, чем я, может помочь мне в решении этой проблемы!

ответ

0

Не делая слишком много исследований, похоже, что у вас должно быть new App.Root или extends App.Root. Это может объяснить, почему ваши маршруты работают, но нет корневого стека.

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