好的,超级基本的 Backbone 问题 - 我一直在寻找这个问题,但是尽管有很多类似的问题,但我还是太慢了。请放心,我感到很惭愧。
无论如何,足够的自我鞭笞——为什么不渲染?
var app = app || {};
app.Option = Backbone.Model.extend({
url: 'http://localhost:4711/api'
//This url contains the following JSON: {"title": "Blahblah", "author": "Luke Skywalker"};
});
app.View = Backbone.View.extend({
el: 'body',
initialize: function(){
this.model.fetch();
this.model.bind('change', this.render(), this);
},
render: function(){
this.$el.html(this.model.get('title'));
return this;
}
});
$(function() {
var option = new app.Option();
this.homeView = new app.View({ //Tried changing this to a standard var declaration but didn't work
model: option
});
this.homeView.render();
});
所以我期待在屏幕上看到 JSON “Blahblah”,但我什么也没看到。JSON 被正确获取(我可以在 firebug 控制台中看到成功的 GET 请求),我想我已经确保在尝试渲染之前获取了数据......
那么有什么问题呢?控制台给了我这个错误:“TypeError: (intermediate value).callback.call is not a function”
谢谢!