2014-03-04 3 views
3

제가 약간의 의문이 있습니다. 템플릿 도우미 데이터를 동적으로 변경할 수 있습니까? 여기 meteor, 동적으로 템플릿 도우미 데이터 변경

내 템플릿

{{#each post}} 
<h4>{{postyname}}</h4> 
<h4>{{Headline}}</h4> 
<h4>{{Location}}</h4> 
{{/each}} 

이며,이 내 도우미 데이터

post:function() 
{ 
    posts.find({},{sort: {createdAt: -1}}).fetch(); 
} 

이며 내 홈페이지에 결과를 표시하고, 나는이 페이지의 상단과 때마다 사용자에 검색 창을 검색 버튼을 클릭하면 동일한 템플릿이 렌더링되어야하지만 사용자 검색에 따라 다른 데이터가 필요합니다. 이 방법이 작업을 수행하는
'onclick #searchBtn':function() 
{ 
    var all_posts=posts.find({'Headline': search},{sort: {createdAt: -1}}).fetch(); 

    Template.postDisplay.post=function(){ 

    return all_posts; 
} 

를 작동하지 않는 것처럼 내 onclick 이벤트에 다음과 같이 시도했습니다

이 보인다?

post:function() { 
    _deps.depend(); // creates a dependency between the accessor of "post" and the _deps 
    posts.find(searchCriteria,{sort: {createdAt: -1}}).fetch(); 
} 

당신의 버튼에 :

는 도우미에서

var _deps = new Tracker.Dependency; 
var searchCriteria = {}; 

파일 당신의 js의 상단에 변수를 만들기 : 나는 Dep Dependency을 사용하여 믿고

+0

작업과 게시물의 상관 관계는 무엇입니까? 나는 당신의 도우미가 당신의 버튼을 클릭하는 것과 어떻게 관련되어 있는지보기 힘들다. 게시물이나 작업을 동적으로 (또는 둘 다) 수행 하시겠습니까? – Firo

+0

@ Firo, 죄송합니다 질문을 편집했습니다 – Sasikanth

답변

7

사용하려는 것입니다 클릭 수 :

'onclick #searchBtn':function() { 
    searchCriteria = {'Headline': search}; 
    _deps.changed(); // notifying everyone that is dependent on _deps that it has changes 
} 

귀하의 질문에서 볼 수 있듯이 귀하의 상황을 처리해야한다고 생각합니다. 내가 너의 문제에서 뭔가 잘못 이해했는지 알려줘.

+0

오케이 thx, 당신에게 돌아갈 것입니다 – Sasikanth

+1

Thx 남자, 잘 일하는 내 하루를 절약했습니다 – Sasikanth

+1

이것은 StackOverflow에 대한 유성에 대한 가장 중요한 답변입니다, 많이 고마워! 그런데'Deps.Dependency;'대신'Tracker.Dependency;'를 대신 사용할 수 있습니다. – mertyildiran

5

왜 세션 변수를 사용하지 않는 것이 좋을까요? 그들은 당신이 필요로하는 바로 반응 적입니다.

대신 수동 등록 자동 화재 및 종속한다 Session.set에 Session.get을 사용하여 의존성을 처리

..

post:function() 
{ 
    var searchCriteria = Session.get("searchCriteria") || {}; 
    posts.find(searchCriteria,{sort: {createdAt: -1}}).fetch(); 
} 

'onclick #searchBtn':function() 
{ 
    Session.set("searchCriteria", {'Headline': search}); 
} 

세션 변수는 또한 핫 코드 장전 한 후에 유지된다. 변수는 그렇지 않습니다.

관련 문제