2011-05-11 4 views
5

backbone.js를 사용하여 데이터 입력이 많은 RIA를 구축 중입니다. 내 첫 번째 계획은 내 UI에 '저장'및 '취소'버튼을두고 사용자가 저장을 클릭 할 때마다 큰 덩어리로만 내 모델을 저장하는 것이 었습니다. 히트 취소는 단순히 모델을 서버에서 다시로드합니다. 이렇게하면 돌이킬 수없는 실수를 저 지르지 않아도됩니다.backbone.js를 사용할 때 "실행 취소/다시 실행을 통한 자동 저장"vs "저장/되돌리기 버튼"

하지만 모델 변경 사항을 "감시"하고 모델 값을 되돌릴 때보기가 올바르게 업데이트되도록하려면 실행 취소/다시 실행을 구현하는 것이 그리 어렵지 않을 것입니다. 실행 취소/다시 실행을 수행했다면 모델을 서버에 즉시 저장하도록 선택할 수 있습니다.

백본이 선호하는 두 가지 방법 중 하나는 무엇입니까? 백본의 MVC 스타일을 사용하여 실행 취소/다시 실행을 구현하는 좋은 방법은 무엇입니까?

답변

5

이 답변을 받기까지 잠시 기다려 주셨을 것입니다. 이미 답변 해 주셨을 것입니다. 나는 코드가 없지만 몇 가지 개념이 내 머리 꼭대기에서 나를 쳤다.

높은 수준에서, 나는 실행 취소 할 수있는 기본 모델을 갖습니다. 또는 모델에 실행 취소 할 수있는 기능을 부여하기 위해 믹스 인 형태를 사용할 수도 있습니다. 실행 취소의 구현은 명령 패턴을 사용하여 다중 레벨 실행 취소 '스택'을 형성합니다.

내가 이것을 구현했다면, 되돌릴 수없는 모델에 명령 모델의 backbone.js 콜렉션을 장착 할 수 있다고 생각합니다. 이러한 명령 모델은 실행 취소 가능 모델의 변경 사항을 캡슐화하고 모델의 변경 이벤트와 함께 작성됩니다. 실행 취소 가능 모델에 대한 변경 사항을 실행 취소하려면 맨 위 명령을 해제하고 실행 취소 가능 모델에 실행 취소를 적용하십시오. 서버 새로 고침은 명령 모음을 지울 것입니다.

이 모든 문제 중 하나는 실행 취소로 인해 발생하는 변경 사항을 관리하는 방법입니다. 스택 자체가 실행 취소 명령을 스택 상단에 생성해서는 안됩니다.

희망이 도움이됩니다.

+0

예제 코드를 제공해 주시겠습니까? –

+0

미안하지만, 2 년 전 백본을 프로젝트 용으로 사용할 때이 질문에 대답했습니다. 나는 결코 backbone으로 돌아 오지 못했습니다. 그 이후로, 그래서 나는 함께 모일 수없는 어떤 예를 믿지 않을 것입니다. –

관련 문제