2015-08-03 99 views
1

讓我們假定我們有測試代碼是這樣的:Backbone.js的+ Require.js和ViewsFactory

var App = (function() { 

    var api = { 
     Router: null, 
     init: function() { 
      this.content = $("#content"); 
      Backbone.history.start(); 
      return this; 
     } 
    }; 

    var ViewsFactory = { 


     view1: function() { 
      var model1 = new model1(); 
      return new api.Views.View1({ 
       model: model1 
      }); 
     }, 

     view2: function() { 
      var model2 = new model2(); 
      return new api.Views.View2({ 
       model: model2 
      }); 
     }, 

     view3: function() { 
      var model3 = new model3(); 
      return new api.Views.View3({ 
       model: model3 
      }); 
     }, 


    }; 

    var Router = Backbone.Router.extend({ 
     routes: { 
      "": "view1", 
      "2": "view2", 
      "3": "view3", 
     }, 

     view1: function() { 
      var view1 = ViewsFactory.view1(); 
      $(".content").html(view1.render().el); 
     }, 

     view2: function() { 
      var view2 = ViewsFactory.view2(); 
      $(".content").html(view2.render().el); 
     }, 

     view3: function() { 
      var view3 = ViewsFactory.view3(); 
      $(".content").html(view3.render().el); 
     }, 

    }); 

    api.Router = new Router(); 

    return api; 
})(); 

而且我想用Require.js。請不要關注名字,而是關於這個想法。

  1. 如果我理解正確,我必須在require方法中包含每個視圖(View1,View2,View3)和每個模型(Model1,Model2,Model3)。但在這種情況下使用Require.js而不是傳統的<script>標籤的目的是什麼?
  2. 在主幹項目中使用ViewsFactory是一個很好的實踐嗎?

回答

0

在路由器的最佳選擇是使用的變量是這樣的:

var $ = require('jquery'), 
    Backbone = require('backbone');