0

私はバックボーンを使い始めたばかりで、サンプル アプリでバックボーンの依存関係 (バックボーン、アンダースコア、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> 
4

1 に答える 1

2

あなたの例ではrenderShowViewインスタンスで呼び出すものが必要です。これは、ルーターのルートの責任である場合もあれば、ビューを作成するドキュメント準備ハンドラーで行うこともできます。

window.app = new SampleApp.Views.Articles.ShowView();
window.app.render();
于 2012-12-01T16:32:32.173 に答える