2012-05-30 6 views
1

Создайте сайт с одной страницей с помощью backbone.js. Я использую require.js, чтобы сделать код модульным, , но у меня возникают проблемы с инициализацией магистрального маршрутизатора для URL-адресов. загружаю основной JS файл, используя require.js, Херес, что это выглядит какНевозможно получить доступ к Backbone.Router

enter code here 
//App Namespace 
var Chrono = Chrono || {}; 
//App Config Namespace 
Chrono.Config = Chrono.Config || {}; 
//App Views Namespace 
Chrono.Views = Chrono.Views || {}; 

//Config 
Chrono.Config = { 
    url:"http://localhost/chronotech/", 
    site_url:"http://localhost/chronotech/index.php/", 
    data_source:"http://localhost/chronotech/assets/datasource/" 
}; 

require.config({ 
    paths : { 
     'backbone': 'libs/backbone', 
     'jquery':'libs/jquery.min', 
     'underscore':'libs/underscore', 
     'text':'libs/require/text' 
    }, 
    baseUrl : 'assets/js' 
}); 

require(
    ['require', 'underscore', 'backbone', 'jquery'], 
    function(require,_, Backbone, $) { 
     require(['app'], 
      function(require) { 
     }); 
    }); 

И app.js выглядит так

define(['backbone','routers/workspace'], 
    function(Backbone,Workspace) { 
     $(function() { 
      var space = new Workspace(); 
     }); 
    }); 

И маршрутизатор файл выглядит следующим образом

define(['jquery','backbone'], 
    function($, Backbone) { 

     var Workspace = Backbone.Router.extend({ 
      routes: { 
       "about":"aboutPage", 
       "team":"teamPage", 
       "contact":"contactPage", 
       "work":"portfolioPage", 
       "products":"productPage" 
      }, 
      aboutPage : function() { 
       alert("about"); 
      }, 

      teamPage : function() { 
       alert("team"); 
      }, 

      contactPage: function() { 
       alert("contact"); 
      }, 

      portfolioPage : function() { 
       alert("work"); 
      }, 

      productPage : function() { 

      } 
     }); 

     return Workspace; 
    }); 

Когда я загружаю страницу, я получаю следующие ошибки: «Неиспользуемый ReferenceError: $ не определен», «Неподготовленный TypeError: Невозможно прочитать prop erty 'Router' null. Что я делаю неправильно?

+0

Сначала вы загрузили jquery? затем следуйте этому порядку 'underscore, backbone, models, collection, views, routers' – Deeptechtons

+0

@Deeptechtons Я попробую, что – MrFoh

+0

@Deeptechtons я могу получить доступ к объекту Backbone, но $ по-прежнему не определено – MrFoh

ответ

0
define(['backbone','routers/workspace'], 
    function(Backbone,Workspace) { 
     $(function() { 
      var space = new Workspace(); 
     }); 
    }); 

Это отдельный файл? Возможно, вам нужно загрузить jQuery, чтобы использовать $?

Смежные вопросы