2014-10-15 2 views
0

Интересно, возможно ли передать глобальную переменную при рендеринге шаблона. В основном я получаю эту переменную каждый раз, когда я называю контроллер, так это выглядит следующим образом:Могу ли я передать глобальную переменную в знак подчеркивания?

window.myVar = 0; 
//this var will change in a given moment when I make a request to the server.. so: 

//into the render method of my view, I have something like this: 
var template = _.template($("#myTemplate").html(), { varIwantToPass : myVar }); 
this.$el.html(template); 

таким образом я могу получить доступ к нему в шаблон с чем-то вроде этого:

<%= varIwantToPass.get('myVar') %> 

, если это возможно? ; а также, каждый раз, когда вы визуализируете представление, этот код снова вымачивается и обновляет значение?

+0

Обратите внимание, что вы не можете '_.template (source, data)' как Underscore 1.7, вы должны 't = _.template (source); h = t (данные) '. –

ответ

1

Да, за исключением того, шаблон должен быть

<%= varIwantToPass %> 

и передать переменную window.myVar, чтобы вы случайно не заменить его

И да будет обновляться после каждого рендеринга, если передать переменную каждый раз

Рабочий пример:

Html:

<script id="myTemplate" type="text/html"> 
    <%= varIwantToPass%> 
</script> 

<div></div> 

JS:

window.myVar = 'a'; 
var templateHtml = $("#myTemplate").html() 
var render = function() { 
    var template = _.template(templateHtml, { varIwantToPass : window.myVar }); 
    return template; 
} 

$('div').html(render()); 

window.myVar = 'b'; //change variable 
setTimeout(function() { 
    $('div').html(render()); 
}, 1000) 

http://jsfiddle.net/omynhL1d/

Однако я бы выступать на не используя глобальную переменную и вместо того, чтобы сохранить его где-нибудь на ваш взгляд позвоночника или даже лучше модель, а затем вынести на прослушивание на этой модели change event

+0

спасибо тонна мой друг – andresmijares25

+0

Нет проблем. Я добавил пример jsfiddle и, пожалуйста, проверьте последнее предложение об использовании глобальной переменной. – n0mercy

Смежные вопросы