2014-09-22 7 views
0

Я делаю динамическую фильтрацию, но я не могу это сделать, если проверка состояния.Как вставить переменную javascript внутри тегов ejs

я хочу, чтобы вставить targetOS вар внутри <%, если (данные [I] .ListNames == targetOS) {%>

для указанного выше синтаксиса он дает "переменная 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

2 - HTML затем передается в браузер

3 - Браузер читает и обрабатывает javascript

Выполнение JavaScript происходит на гораздо более позднем этапе, чем выполнение ejs.

0

Ответы @fmsf верны. Тем не менее, если вы знаете значение targetOS на сервере, при оказании EJS вы можете сделать это следующим образом:

определяют его, как это в вашем файле EJs:

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

Тогда при визуализации страницы с помощью ejs, передайте ему такой параметр:

res.render(url, {TARGET_OS: "Your desired value here"}, function(err, html) { 
Смежные вопросы