我刚刚开始使用 Backbone,我已经在示例应用程序中设置了主干依赖项(主干、下划线、json2),并且我开始为我的应用编写一些主干模型、视图等。
我的问题是:假设用户导航到我的应用程序中的页面。该页面如何初始化/调用主干视图?我的印象是我应该在加载的页面上包含这种 jQuery/js:
$(document).ready(function(){
window.app = new SampleApp.Views.Articles.ShowView();
new SampleApp.Routers.RootRouter();
Backbone.history.start();
});
然后我认为 Articles ShowView 会运行:
$(document).ready(function(){
SampleApp.Views.Articles || (SampleApp.Views.Articles = {});
window.SampleApp.Views.Articles.ShowView = Backbone.View.extend({
el: ".container",
events: {
'click .overlay': 'test'
},
initialize: function(){
//eg: this.model.bind('change', this.render, this)
},
render: function(){
$(".container").html('');
alert('got here');
},
test: function(){
alert('clicked a picture');
}
})
});
但是,当我加载页面时,我没有获得 ShowView 中指定的任何功能。(没有警报等)。我意识到“ShowView”是用词不当,因为它实际上还没有做任何事情。但如果它真的被调用,那么这些警报不应该运行吗?
仅供参考,我认为我正确包含了主干的所有文件:
<script src="{{ STATIC_URL }}js/underscore.js"></script>
<script src="{{ STATIC_URL }}js/json2.js"></script>
<script src="{{ STATIC_URL }}js/backbone.js"></script>
{# Models #}
<script src="{{STATIC_URL}}js/backbone/models/article.js"></script>
{# Views #}
<script src="{{STATIC_URL}}js/backbone/views/articles/show.js"></script>
{# Routers #}
<script src="{{STATIC_URL}}js/backbone/routers/root.js"></script>