バックボーン.js、backbone.marionetteで構築されたサイトの一部で非常に奇妙なエラーが発生しています。テンプレートにはunderscore.jsを使用し、RESTフレームワークにはtastypieを使用しています。
Firebugは、「ReferenceError:xyz(アンダースコアテンプレートの<%= xyz%>が定義されていません)」を出力します。(範囲5から8)。
これをunderscore-min.jsファイルまでさかのぼると、minファイルであるため、8行ありません。それは予想されることです。
ただし、コンソールでの変数の手動操作は正常に機能するため、代わりに構文エラーが疑われます。
RESTフレームワークから名前モデルフェッチを手動で定義し、それをビューにレンダリングできます。MyApp.testSection.show( "レンダリングされたビュー")を使用して、問題なくフロントエンドに適切に出力することもできます。
NameViewテンプレート内の構文に何か問題があるのではないかと疑っています:_。template(...)セクションまたはMyApp.addInitializer
以下のコード
Name = TastypieModel.extend({
urlRoot:'/api/v1/names/Calvin'
});
//returns an array {'name':'Calvin', 'age':32, etc....}
NameView = Backbone.Marionette.ItemView.extend({
model: Name,
template: _.template("<h1>My name is <%= name %></h1>"),
tagName: 'p',
initialize: function(){
this.bindTo(this.model, "change", this.render);
}
});
MyApp.addInitializer(function(options){
var name = new Name();
name.fetch();
var nameview = new NameView ({
model: name
});
MyApp.testSection.show(nameview);
});