2014-10-23 3 views
1

브론치와 함께 chaplinjs 보일러 플레이트에 몇 가지 추가 라이브러리 (sinon, selenium, chai 및 mocha)를 사용하고 있습니다. 이제 뷰에서 정확한 콜렉션 뷰 모델을 편집을 위해 다른 컨트롤러로 전달하려고합니다.청결한 URL을 사용하여 chaplinjs의 다른 컨트롤러로 모델을 넘겨주세요.

I는 다음과 같이이 작업을 수행 할 수 있습니다

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

을하지만이 지저분 내 URL 수 :

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

내가 전달 여전히 깨끗한 URL을 유지하고 어떤 허용 방법을 찾을 수없는 것을 전체 모델을 서버에서 모델을 다시 가져 오지 않고 다른 컨트롤러에 추가 할 수 있습니다.

답변

1

일반적으로 채플린의 composer을 사용하지만보기를 다시 사용하기위한 용도로만 사용됩니다.

이 작업은 여전히 ​​수행 할 수 있지만 스택이 있습니다.

컨트롤러를 변경하는 동안 application.coffee에 스택을 만들면 항목을 저장할 수 있습니다. 당신 사용할 수 있습니다

Mediator.execute 'push', @model 

및 검색 :

Mediator.execute 'pop' 

# 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() 

지금 당신은 다음과 같은 코드에서 어디에서나 스택에 밀어 수 있습니다