2016-06-28 3 views
1

데코레이터 @singleton (false)을 뷰 모델에 할당 할 때에도 뷰 모델은 활성화/비활성화를 통해 싱글 톤으로 유지되지만 바인딩 및 구성 요소 등은 그렇지 않습니다. 뷰가 비활성화 될 때 언 바운드되지 않도록하는 방법은 무엇입니까?

(I 그들이 비활성화에 배치 된 용기에 저장되기 때문이다 가정한다.)

결과가 단일 조회 모델 뷰의 모든 비활성시/활성화되면, 도면 않은 것이다 - 바운드 한 다음 다시 바인드합니다.

바인딩이 비활성화/활성화를 통해 지속되도록 할 수 있습니까?

답변

0

이 하나가 좋은 시간 동안 저를 곤란하게 만들었습니다. 또한 왜 Aurelia 팀이 그것을 구현하는 것이 더 중요하지 않은지에 관해서 혼란 스러웠습니다.

이 작업을하려면 상당한 양의 코드가 필요합니다. 여기에 요점에 코드를 넣었습니다 : https://gist.github.com/Vaccano/1e862b9318f4f0a9a8e1176ff4fb727e

모든 파일은 main.ts 파일의 수정본 인 마지막 파일을 제외한 새로운 파일입니다. 또한, 내 모든 코드는 Typescript에 있습니다. Javascript를 사용하고 있다면 번역해야합니다.

기본 아이디어는보기와보기 모델을 캐시하는 것입니다. 그리고 라우터를 캐싱 라우터로 교체하십시오. 따라서 사용자가 페이지를 다시 탐색하면 처음에 이미 생성 된보기 /보기 모델이 있는지 확인한 다음 새로운보기 /보기 모델 대신 사용합니다.

참고 : 이것은 "구성 요소"수준 코드가 아닙니다. 즉,이 시나리오는 내가 사용하는 시나리오에서 작동하는지 테스트 한 것입니다.

나는이 변경을 여기에서하기 시작했다. https://github.com/aurelia/router/issues/173 다른 사용자 (Scapal)가 그를 위해 일하고 뭔가를 게시했다. 내가 게시 한 내용이 당신을 위해 작동하지 않는다면 그의 도움이 될 것입니다.

+0

감사합니다. @Vaccano –

+0

나는 그것에 대해 생각 해왔다. 처음에는 언급하지 않았지만 Aurelia에 내장 된 솔루션을 찾고있었습니다. 제안한 코드는 말 그대로 "상당한 양의 코드"입니다. 또한이 문제가 논의되고 다른 긴 코딩 솔루션이 제시되는 열린 아우렐 리아 라우터 문제를 지적했습니다. 기본적으로 내게 대답을주었습니다 : "아니요, 원하는 코딩 작업을 수행 할 수있는 기본 제공 방법이 없으며 상당한 코딩이 필요하지 않습니다. Aurelia 팀은 언젠가 구현할 수도 있지만 지금까지 그들에게 최우선 적으로 고려되어 왔던 것 같습니다. " –

0

나는 이것에 대한 답변을 얻었습니다. 어쩌면 나는 지금 바보 같은 짓을하고 있지만, 아우렐 리아 역사를 탐색 (..) 명령으로 사용하지 않을 이유가 있을까요?

+0

제안 해 주셔서 감사합니다.하지만 어떻게 도움이 될지 모르겠습니다. –