アプリのテンプレート システムにBackbone.jsと一緒にMustache.jsを使用しています。ブロック内の外部 .html ファイルにテンプレートを保存しています。各スクリプト ブロックには、jQuery.get() を使用してテンプレートを取得するために使用している一意の ID があります。<script></script>
したがって、ビューのレンダリング関数は次のようになります。
render: function(){
$.get('templates/templates.html', function(templates) {
try {
var template = $(templates).filter('#tpl-MediaView').html();
return mustache.render(template, this.model.toJSON());
this.playlist.each(function(media) {
var mediaView = new MediaView({model: media});
this.$('#playlist').append(mediaView.render());
});
} catch(e) {
alert(e.message);
}
});
}
私が問題を抱えている問題はthis.model.toJSON
、$.get() の内部からアクセスすることです。外部の変数に値を代入して渡してみました。戻り値も外部で実行しようとしました。$.ajax() も使用してみました。このスコープの問題に対処する最も簡単な方法は何ですか?
- アップデート -
このコードで受け取ったエラーは次のとおりです。
未定義のメソッド「toJSON」を呼び出すことはできません