答案可能在 SO 上,但他们并没有真正正确地解释我要问的问题。
每当我将this.model.toJSON()
带有模板的 a 引入视图时,我总是在 Firebug 中收到此错误:this.model is undefined
现在,SO中的许多答案并没有真正解释什么this.model
是,它们只是解决了提问者的问题。所以我的问题是:
- 如何解决我的问题?
- 它是什么
this.model
以及它来自哪里,或者我如何定义和使用它(在错误中,它是未定义的)? this.model
和和Backbone.View
之间的关系是什么?Backbone.Collection
Backbone.Model
this.model
和this.models
(注意末尾的“s” )有什么区别model
?- 此外,所有上述问题都与
this.collection
?
很抱歉这个问题,但我对 Backbone 很陌生,我在网上、书籍和 SO 中进行了无休止的研究,但似乎没有人至少写过一篇文章来解释每个 Backbone 属性和属性是什么。...只是没有深入解释的教程。即使在 Addy Osmani tutotrial 中,即使它被大量使用Todo
,也没有深入的解释。this.model
请看我的代码:
JS / 骨干:
(function($) {
// model
var AppModel = Backbone.Model.extend({
defaults : {
title : 'App Title',
version : '0.1'
}
});
// collection
var AppList = Backbone.Collection.extend({
model : AppModel,
url : '#'
});
// main app view
var AppView = Backbone.View.extend({
el : '#app',
template : _.template($('#app-template').html()),
initialize : function() {
_.bindAll(this, 'render');
this.render();
console.log(this.template(this.model.toJSON()));
},
render : function() {
console.log(this.$el);
}
});
var app = new AppView;
}(jQuery));
HTML:
<div id="wrapper">
<!-- Main App -->
<div id="app"></div>
</div>
<!-- template with underscore.js -->
<script type="text/template" id="app-template">
<article>
<h2>App Name: <%= title %></h2>
<p>Version: <%= version %></p>
</article>
</script>
非常感谢