バックボーン JS ライブラリを使用してページを構築します。コレクション、ビュー、ルーターがあります。目標は、ページ内のコレクションのすべてのエントリを一覧表示することです。
コレクション
window.Artifact = Backbone.Model.extend({
urlRoot:"/rest/artifacts",
initialize:function(){
this.artifacts = new ArtifactCollection();
}
});
window.ArtifactCollection = Backbone.Collection.extend({
model:Artifact,
url:"/rest/artifacts"
});
var artifacts = new ArtifactCollection;
景色
window.findView = Backbone.View.extend({
initialize:function () {
console.log('Initializing Find View');
this.template = _.template(tpl.get('find'));
},
render:function (eventName) {
var data = { 'data' : artifacts.models };
$(this.el).html(this.template( data ));
return this;
}
});
ルータープログラム
var AppRouter = Backbone.Router.extend({
routes:{
"":"home",
"contact":"contact",
"get":"get",
"find":"find",
"requests/:id":"requests"
},
find:function(){
artifacts.fetch( {
success:function(){
this.findView = new findView( );
this.findView.render();
$('#content' ).html( this.findView.el );
}
});
},
問題は、ほとんどの場合は機能しますが、時々機能しないことです。次の例外をスローします
Uncaught TypeError: object is not a function
artifacts.fetch.successmain.js:53
_.extend.fetch.options.successbackbone-0.9.2.js:760
jQuery.Callbacks.firejquery.js:1032
jQuery.Callbacks.self.fireWithjquery.js:1150
donejquery.js:7385
jQuery.ajaxTransport.send.callback
誰もこの種の問題を見たことがありますか?