2014-04-21 3 views
4

Blaze에 대해 Meteor 0.8의 반응 렌더링을 허용하는 많은 리소스를 읽었지만 아래의 간단한 문제에 대한 해결책을 찾을 수 없습니다.폼 유효성 검사를위한 Meteor 양방향 데이터 바인딩

양식 입력의 유효성을 검사하려고합니다. 단순화를 위해 양식을 제출할 때 {{message}}을 변경하려고한다고 가정 해 보겠습니다. 내가 client.js에서 취한 접근법은 단순히 도우미 변수에 새로운 값을 부여하는 것입니다. 이것은 내가 AngularJS를 사용하는 방법 이었지만 Meteor에서 단순히 변수를 변경하는 것 이상의 의미가 있습니다. 나는 이것에 대해 어떻게 갈 것인가?

- index.html 
<template name="user"> 
    <form> 
     <input type="text" id="name"> 
     <p>{{message}}</p> 
     <button class="submit" onclick="return false;">Submit</button> 
    </form> 
</template> 

- client.js 
Template.user.message = ""; 
Template.user.events = { 
    'click .submit' = function(){ 
     Template.user.message = "valid"; 
    } 
} 

답변

1

반응 변수를 사용하는 경우 작동합니다. 나는이 예제에서 세션 변수를 사용합니다 : events이 (코드를 클릭 처리기를 할당하는 대신 이벤트 맵에 값을하고있다)는 오브젝트를

Template.user.message = function() { 
    return Session.get('userMessage'); 
}; 

Template.user.events({ 
    submit: function() { 
    Session.set('userMessage', 'valid'); 
    } 
}); 

하는 것으로.

+0

세션 변수를 처리하는 것이 훨씬 번거롭기 때문에 AngularJS 방식이 있어야한다고 느꼈습니다. 그러나 이것은 확실히 해결책입니다. –

관련 문제