如何在页面上获得“开始”(运行)的主干视图?

时间:2012-12-01 16:09:53

标签: django backbone.js

我刚刚开始使用Backbone,我已经在示例应用程序中设置了主干依赖项(主干,下划线,json2),并且我开始为我的应用程序编写一些主干模型,视图等。

我的问题是:假设用户导航到我的应用中的某个页面。该页面如何初始化/调用骨干视图?我的印象是我应该在加载的页面上包含这种jQuery / js:

 $(document).ready(function(){
   window.app = new SampleApp.Views.Articles.ShowView();
   new SampleApp.Routers.RootRouter();
   Backbone.history.start();
 }); 

然后我认为文章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> 

1 个答案:

答案 0 :(得分:2)

在您的示例中,您需要在render实例上调用ShowView的内容。这可以是路由器中路由的责任,也可以在创建视图的文档就绪处理程序中执行。

window.app = new SampleApp.Views.Articles.ShowView();
window.app.render();