私は Backbone.js を学んでおり、Backbone ビューでインスタンス変数を使用できるかどうかを調べようとしています。
私の目標は、ビューがインスタンス化されているときに、外部ファイルからビューのテンプレートをロードすることです。現在、バックボーン アプリのグローバル名前空間のグローバル変数に保存していますが、ビューのインスタンス変数にテンプレートを保存する方がクリーンです。現在、私は次のように設定しています:
var templates = {};
MessageView = Backbone.View.extend({
initialize: function() {
$.get('js/Test2Templates.tpl', function(doc) {
var tmpls = $(doc).filter('template');
templates['MessageView'] = [];
tmpls.each(function() {
templates.MessageView[this.id] = $.jqotec($.unescapeHTML(this.innerHTML));
});
});
},
render: function() {
var tpldata = {name: 'Ville', thing: 'Finland'};
$('#display').jqoteapp(templates.MessageView.greeting_template, tpldata);
},
events: {
"click input[type=button]": "additionalTransactions"
},
additionalTransactions: function() {
this.render();
}
});
しかし、グローバル変数として定義されている「テンプレート」を使用する代わりに、次の行に沿ってビューの初期化関数で「テンプレート」を作成したいと思います (ただし、これは機能しません)。
MessageView = Backbone.View.extend({
view_templates: {},
initialize: function() {
$.get('js/Test2Templates.tpl', function(doc) {
var tmpls = $(doc).filter('template');
tmpls.each(function() {
this.view_templates[this.id] = $.jqotec($.unescapeHTML(this.innerHTML));
});
});
},
render: function() {
var tpldata = {name: 'Ville', thing: 'Suomi'};
$('#display').jqoteapp(this.view_templates.greeting_template, tpldata);
},
events: {
"click input[type=button]": "additionalTransactions"
},
additionalTransactions: function() {
this.render();
}
});
これはおそらく (?) かなり単純明快ですが、私は Backbone.js の学習曲線のどこかにいるので、これについて何か助けていただければ幸いです!! ありがとう!