我刚刚学习backbone.js。我写了下面的例子,但它不起作用,为什么?
它应该只在我的 div 元素中显示名称。
(function($) {
var Item = Backbone.Model.extend({
urlRoot: '/api/camp/1/'
});
var ListView = Backbone.View.extend({
el: '#reward_view',
initialize: function() {
_.bindAll(this, 'render'); // every function that uses 'this' as the current object should be in here
},
render: function() {
console.log(this)
$(this.el).html('<h1>Hello' + this.model.get('name') + '</h1>');
return this; // for chainable calls, like .render().el
}
});
var reward_view = new ListView();
})(jQuery);
最佳答案
您缺少模型的实例化,然后您必须获取该模型并将其传递给您的 View ,之后您必须调用 View 的渲染。
(function($) {
var Item = Backbone.Model.extend({
urlRoot: '/api/camp/1/'
});
var ListView = Backbone.View.extend({
el: '#reward_view',
initialize: function() {
_.bindAll(this, 'render'); // every function that uses 'this' as the current object should be in here
},
render: function() {
console.log(this)
$(this.el).html('<h1>Hello' + this.model.get('name') + '</h1>');
return this; // for chainable calls, like .render().el
}
});
var myItem = new Item();
myItem.fetch();
var reward_view = new ListView({model:myItem});
reward_view.render();
})(jQuery);
关于javascript - 主干显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825156/