2016-07-26 3 views
0

이 코드는 내 컬렉션에서 배열 데이터를 검색합니다. 배열에서 각 위치의 데이터를 얻으려고 다른 데이터를 나누기 위해 관리했지만 지금은 다른 쿼리에 대해 각각의 데이터가 필요합니다. 분할 후 쿼리를 직접 만들면 오류가 발생하며 변수를 저장하는 방법이 있습니까 mySplitResult []를 다른 변수의 전역 변수로 사용하여 다른 템플릿 도우미에서 내 쿼리를 만들거나 동일한 함수의 쿼리에 mySplitResult의 결과를 사용하는 다른 방법이 있습니다. 이 모든 것은 자바 스크립트에서 클라이언트 측에서 수행하고 있습니다.유성우 클라이언트 자바 스크립트의 전역 변수

Template.testeo.helpers({ 
    ls: function(){ 
    var list=Calender.find({status_visualizacion: "visible"}); 
    var count = 0; 
    list.forEach(function(calender){ 
     var result = + count + "," + calender.calendario_slaves; 
     mySplitResult = result.split(","); 
     var i = 0; 
     while (i < mySplitResult.length){ 
     //console.log(mySplitResult[i]); 
     trozo= mySplitResult[i]; 
     console.log(trozo); 
     i++; 
     //return trozo; 
     } 
     count += 1; 

    }); 
    } 
}); 
+0

에서 창 변수 및 액세스에 넣지하려는 잘합니다. –

+0

이 질문은별로 의미가 없습니다. mySplitResult 중 첫 번째가 루프에서 계산되어 여러 값을 갖습니다. 두 번째 이유는 문자열을 결합하여 다시 분리하는 이유는 무엇입니까? 'calender.calendario_slaves'가 배열이면 그냥 사용할 수 있습니다. 세 번째로, 도우미는 아무 것도 반환하지 않습니다 (주석 처리 된'return'이 있지만'while' 루프 안에 있습니다.) 그래서 의미가 없습니다. 실제로 무엇을하려고합니까? –

답변

0

수행 할 수있는 몇 가지 방법이 있습니다. 하나는 Session 객체를 사용하여 값을 저장하는 것입니다. Session이 사용자 세션의 길이만큼 살아 있기 때문에 이것은 위험합니다. 이상한 버그와 예외의 대부분은 예기치 않게 또는 잘 생각지 않은 이상한 상태에 빠질 수 있으므로 세션에 너무 많이 의존하는 코드에 기인합니다.

다른 방법은 경로 경로 변수 또는 쿼리 매개 변수를 사용하여 템플릿에 값을 전달하는 것입니다. 나는 루트 경로 변수를 직접 선호한다. app.com/users/codechimp과 같이 "RESTful"한 느낌을주기 때문에이 예제에서 codechimp은 내 응용 프로그램에서 보려는 사용자 ID이다. 이 작업을 올바르게 수행하려면 URL 패턴을 최대한 활용하는 방법을 고려해야합니다. 이것은 일반적으로 코드간에 공유되는 변수에 상태를 연결하지 않기 때문에 더 나은 접근 방법이라고 생각합니다. 공유 세션 변수로 인해 발생하는 버그에 영향을 적게받습니다.

1

당신이 변수가 다음 반응 글로벌 아니라 수 단지 어떤이 다른 템플릿에서 전역 자바 스크립트 변수에 액세스 할 수 없습니다 다른 템플릿

window.Myvar = x 
관련 문제