2012-12-07 3 views
4

저는 Apache-Wicket 재사용 가능한 구성 요소에 초점을 맞춘 webapp 개발에서 유성과 함께 시작했습니다.Meteor 템플릿 상태 대 글로벌 세션

템플릿에 사용 된 데이터가 mongodb 문서가 아닌 경우 세션은 상태 정보를 저장하는 데 사용해야합니다. 드롭 다운 선택. 그러나 세션이 전역이며, 템플릿이 두 번 또는 여러 번 사용되면 고정 된 세션 속성 'mySelection'이 작동하지 않습니다. 모든 템플릿 인스턴스가 동일한 세션 값을 공유하거나 재정의 할 것이기 때문입니다. Apache Wicket 솔루션은 정규화 된 template-path를 사용하여 속성 앞에 접두어를 붙이고 모든 템플릿 인스턴스에 대해 고유 한 세션 속성을 유지 관리합니다.

유성에서 "템플릿 - 인스턴스 - 상태"를 유지하기위한 일반적인 빌드 - 인 솔루션이 있습니까? 그렇지 않으면 어쩌면 템플릿 - 인스턴스 자체가 어떻게 든 템플릿 함수에서 액세스 할 수 있습니까?

답변

-1

템플릿 인스턴스 자체는 을 통해 액세스 할 수 있습니다.

Templates Instances을 참조하십시오.

+1

그러나 생성, 렌더링, 소멸 상태. 거기에 다른 템플릿 함수에서 액세스 할 수 있습니까? Template.abc.data = function() {리턴 this.mydata}. –

1

내가하는 방법은 Apache Wicket의 솔루션으로 설명하는 것과 비슷합니다. 단, 관리 할 코드를 직접 작성하는 것 외에는 다릅니다. 그래서 예를 들어, 각 템플릿에 맞게 키와 세션 개체를 관리 : 템플릿 방법에서

function setTemplateSession(key, value) { 
    Session.set("template_" + key, value); 
} 
function getTemplateSession(key) { 
    Session.get("template_" + key); 
} 

을 :

Template.myList.selection = function() { 
    return getTemplateSession("myList"); 
} 

Template.myOtherList.selection = function() { 
    return getTemplateSession("myOtherList"); 
} 

을 당신은 분명히 추상적 인 수이 더욱. Meteor가 기본적으로 이런 종류의 동작을 제공했다면 좋겠지 만, Meteor를 사용하는 대신 Meteor의 템플릿 시스템에 대한 Apache Wicket의 철학에 기여하는 스마트 패키지를 작성할 수 있습니다.