2014-10-23 5 views
1

Я использую шаблон с бранчем с чаплинами с некоторыми дополнительными библиотеками (синус, селен, чай и мокко). Теперь я хочу передать модель из представления, представляющего коллекцию, чтобы быть точным, другому контроллеру для редактирования.Пропустить модель другому контроллеру в чаплинах с чистым адресом

Я могу это сделать так:

Chaplin.utils.redirectTo 'editaddress', model:@model 

Но это делает мой URL грязный:

localhost:8080/editaddress?model=%5Bobject%20Object%5D 

Я не могу найти какой-либо приемлемый способ сохранить URL чистой и еще пройти целую модель с другим контроллером без повторной установки модели с сервера.

ответ

1

Обычно вы должны использовать chaplin's composer, но это только для повторного использования видов.

Вы можете сделать это по-прежнему, но с стеком.

Создайте стек в application.coffee там, где вы можете хранить предметы, пока вы меняете контроллер.

# This is hidden from all other files so it is save, if you don't use any AMD, 
# you should place this inside the application object. 
stack = []  

module.exports = class Application extends Chaplin.Application 

    ### Your program here ### 

    start: -> 

    # Other code here 

    Mediator.setHandler 'push', @push 
    Mediator.setHandler 'pop', @pop 

    ### 
    # Push to temporary storage stack. 
    ### 
    push: (item)-> 
    push item 

    ### 
    # Pop form temporary storage stack. 
    ### 
    pop: -> 
    return stack.pop() 

Теперь вы можете нажать на свой стек из любого места в коде, как это:

Mediator.execute 'push', @model 

И получить ваш может использовать:

Mediator.execute 'pop'