2013-06-19 3 views
6

나는 아직도 유성의 반응 프로그래밍 모델 주위에 내 머리를 정리하려고 해요을 캡처하는, 그래서 이것은 아마 바보 같은 질문이지만 :반응 변수는 사용자 입력 (유성)

내가에 템플릿 시스템을 사용할 수 있습니다 문서화 된대로 데이터를 "주입"하는 것이 아니라 데이터를 추출합니다. 말하자면 즉, 내가 그렇게

 <textarea id="desc" rows="15" cols="80" > {{projectDescription}} </textarea> 

같은 텍스트 영역은 반응성 데이터 소스로 projectDescription 필드에 액세스하는 것이 가능인가가 있다고한다? REPL에서 Template.project.projectDescription을 사용하여 어디에도 가지 않았지만, 내가 말했듯이, 나는이 게임을 처음 사용합니다.

내가 제안한 것이 불가능할 경우, 관용적 접근은 무엇입니까? 좋아, 어디에 넣을 까?

document.getElementById('desc').value 

서식 파일의 이벤트 맵은이 작업을 수행하도록 설계된 방법입니까? 이 점은 입력이 고유 (서버 질문)인지 또는 실행중인 mkdn (입력 할 때처럼 지금 일어나고 있음)을 확인하는 것입니다. 하지만 대부분은 유성에 대한 느낌을 얻으 려합니다.

답변

5

반응성 단 하나의 방법입니다 그런 다음 세션 변수를 설정할 수 있습니다. 세션 변수는 반응적인 데이터 소스이므로 변수와 템플릿 도우미를 사용하여 템플릿의 다른 부분에 반응성을 만들 수 있습니다. 일례로서

- : 양방향 입력 세션 변수 결합

<template name="project> 
    <textarea id="desc"></textarea> 
    <div>{{projectDescription}}</div> 
</template> 

Template.project.events({ 
    "keydown #desc": function (event) { 
    var value = $(event.target).val(); 
    Session.set("projectDescription", value); 
    } 
}); 

Template.project.helpers({ 
    projectDescription: function() { 
    var projectDescription = Session.get("projectDescription"); 
    //do processing 
    return projectDescription; 
    } 
}); 
+0

cool beens. 그것은 질문을 제기 한 이후로 구현 한 것입니다. 내가 생각했던 것보다 덜 혼란 스럽다는 것을 아는 것이 좋습니다! – Ben

+0

네, 유성이 처음 엔 혼란스러워 할 수 있다는 것을 인정해야합니다. 그러면 마침내 그 모든 것이 마침내 실현 될 때가 있습니다. –

+0

또한 개인적으로 책을 발견하십시오. 유성을 발견하십시오. 운석에 대한 작업에 대한 팁과 트릭은 다른 곳에서는 쉽게 찾을 수 없습니다. –

2

Meteor는 일부 프레임 워크에서 발생할 수있는 양방향 바인딩 유형을 제공하지 않습니다. 이이에 도움이 밖에 스마트 패키지 수 있지만, 바닐라 방법은 DOM 요소에 이벤트를 결합하는 것입니다 수 있습니다 당신은 그러나를 keyDown를 잡을 수있는 템플릿에 이벤트를 등록 할 수

Template.xyz.events({ 
    "keyup #desc": function (evt, template) { 
     Session.set("projectDescription", evt.currentTarget.value); 
    } 
}); 
관련 문제