私がやろうとしていることは、今の私の人生を本当に単純化するでしょう。
どうやってやるの :
これはアプリファイルでの私の見解です
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!');
}
Index.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()を呼び出すにはどうすればよいですか?
何か案が ?
ありがとう!
テンプレートのオブジェクトに関数があれば、テンプレート内で関数を呼び出すことができると思います。
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で何をしたいのかをお知らせください。そのロジックに適した場所をご案内します。