2014-09-22 2 views
0

동적 필터링을 수행하고 있지만 조건 검사를 수행 할 수 없습니다.ejs 태그 안에 javascript 변수를 삽입하는 방법

난 <% 내부 targetOS var에 삽입 할 (데이터 [I] targetOS == .ListNames)이 제공되어 상기 구문 {%>

"targetOS 변수가 정의되지 않는다"

경우

도와주세요.

\t $(document).on("change",'.COTSCurrentOSClass', function(e){ \t \t 
 
\t \t var selectedOS = $(this).val(); \t \t \t \t 
 
\t \t var targetOS = "OS::From::"+selectedOS; 
 
\t \t 
 
\t \t <%for(var i=0;i<data.length;i++){%> 
 
\t \t \t <%if(data[i].ListNames == ***targetOS***){%> 
 
\t \t \t \t <%for(var j=0;j<data[i].Values.length;j++){%> 
 
\t \t \t \t console.log("options are"); 
 
\t \t \t \t console.log(data[i].Values[j]); 
 
\t \t <%}}}%> 
 

 
\t \t ($(this).parent().parent()).find(".COTSTargetOSClass").append("<option>Select One</option>"); 
 
\t \t 
 
\t });

답변

0

싶은 것은 불가능합니다!

은 무슨 일의 순서입니다 :

1 - 서버에서 EJS가

이 HTML로 렌더링합니다 - HTML은 다음 브라우저

3으로 전송 - 브라우저 자바 스크립트를 읽고 처리합니다.

JavaScript 실행은 ejs 실행보다 훨씬 늦은 단계에서 발생합니다.

0

@fmsf가 대답 한 것은 정확합니다. 서버에 targetOS 값을 알고있는 경우 EJS을 렌더링하는 동안 그러나, 당신은 이런 식으로 작업을 수행 할 수 있습니다 당신은을 통해 페이지를 렌더링 할 때 다음

var TARGET_OS = "<%= TARGET_OS %>"; 

:

은 EJS 파일에 다음과 같이 그것을 정의 ejs, 다음과 같이 매개 변수를 전달하십시오.

res.render(url, {TARGET_OS: "Your desired value here"}, function(err, html) { 
관련 문제