Вызов функции внутри шаблона подчеркивания с помощью backbone
просто то, что я пытаюсь сделать, что действительно упростило бы мою жизнь прямо сейчас.
Как я могу сделать это :
Это мой взгляд в файле приложения
window.ArtView = Backbone.View.extend({
template:_.template($('#art').html()),
render:function (eventName) {
var output="blablbla";
$(this.el).html(this.template({"output":output}));
return this;
}
});
...
// function that I would like to call
function callFunction(){
console.log('it works!');
}
шаблон в индекс.HTML-код
<script type="text/tempate" id="art">
<div data-role="header" class="header" data-position="fixed">
<a href="#" data-icon="back" class="back ui-btn-left">Back</a>
</div>
<div data-role="content" class="content">
callFunction();
<% console.log(output) %>
</div>
</script>
Как я могу вызвать callFunction () внутри моего шаблона или что-то подобное ?
есть идеи ?
спасибо !
3 ответов
Я верю, что вы можете вызывать функции в шаблоне как объект для шаблона функции.
render:function (eventName) {
var output="blablbla";
var data = _.extend({"output":output}, callFunction);
$(this.el).html(this.template(data));
return this;
}
тогда в вашем шаблоне:
<%= callFunction() %>
вот как я это сделал, он работает нормально.
template: _.template(templateText , {
imports : {
check :function (val){
// blah blah
}
}
}
}),
затем в HTML-шаблоне
<%= check('value') %>
Это неправильно. Подумайте о шаблоне как о строке, разметке html. Вы получаете его и заменяете некоторые его части фактическими данными. Если вы хотите сделать некоторые манипуляции DOM, они должны быть сделаны после этого. Сообщите нам, что вы хотите сделать в callFunction, и мы можем направить вас в нужное место для этой логики.