2013-11-16 3 views
0
// Filename: router.js 
console.log('TEST ROUTE'); 
define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'views/jobs/list' 
], function($, _, Backbone, JobListView){ 
    var AppRouter = Backbone.Router.extend({ 
     routes: { 
      // Define some URL routes 
      '/dalo/jobs': 'showJobs', 

      // Default 
      '*actions': 'defaultAction' 
     } 
    }); 

    var initialize = function(){ 
     var app_router = new AppRouter; 
     app_router.on('route:showJobs', function(){ 
      // Call render on the module we loaded in via the dependency array 
      // 'views/jobs/list' 
      console.log('Show Job Route'); 
      var jobListView = new JobListView(); 
      jobListView.render(); 

     }); 

     app_router.on('defaultAction', function(actions){ 
      // We have no matching route, lets just log what the URL was 
      console.log('No route:', actions); 
     }); 
     Backbone.history.start(); 
    }; 
    return { 
     initialize: initialize 
    }; 
}); 

Часть моих main.js, я не использовал новое, потому что он дал проблемы говорят, что это не функция не уверен, если это связано с ошибкой вышеrouter.js Функция не выполняется

require(['app'], function(AppView){ 
    AppView.initialize(); 
}); 

Я сделал console.Log после Router.initialize(); на app.js, он может показать. Я также сделал консольный журнал полностью выше в этом приложении router.js, он также показывает, кроме этого, он ничего не показывает внутри функции.

Консоль только показывает, что 2 консоли Log (После Route.Initialize & Перед router.js определить

Любые советы? Я использую http://backbonetutorials.com/organizing-backbone-using-modules/

Мой App.js

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'router', // Request router.js 
], function($, _, Backbone, Router){ 
    var initialize = function(){ 
     // Pass in our Router module and call it's initialize function 
     Router.initialize(); 
     console.log('Router Initialized'); 
    } 

    return { 
     initialize: initialize 
    }; 
}); 

ответ

1

Возможно, вы используете не-AMD версии Backbone.js и Underscore.js.

Таким образом, вы должны добавить то, что оно называется «прокладкой» в ваш основной/конфигурационный файл.

прокладка: Настройка зависимостей, экспорт и пользовательскую инициализации для старой, традиционных «браузера глобал» сценарии, которые не используют определение(), чтобы объявить зависимости и установить значение модуля. http://requirejs.org/docs/api.html#config-shim

Как вы можете видеть этот набор зависимостей и экспортировать свою библиотеку, чтобы позволить вам использовать его в своих сценариях.

Таким образом, в основной конфигурационный файл /, после того, как пути, попробуйте добавить эту часть регулировочной шайбы:

paths: { 
    ... 
}, 
shim: { 
    'backbone': { 
     deps: ['jquery','underscore'], 
     exports: 'Backbone' 
    } 
} 

Теперь предположим, что вы могли бы продолжить ...

+0

Я использую AMD, наверняка проверил это уже, я буду читать SHIM. В чем разница между зависимостями и lib? как насчет «текста»: «vendor/requirejs-text/text» заключается в том, что deps? – CodeGuru

+0

Я уже пробовал добавить в него Shim, он все равно ничего не загружает внутри моего app_router.on ('route: showJobs', function() {Спасибо за помощь :) Я не могу найти больше поддержки :( – CodeGuru

+0

- requirejs/text Я предполагаю, что это плагин для загрузки html-файла, но я предлагаю вам изучить его. - пути, необходимые для загружаемых библиотек, используемых в вашем приложении, необходимы, если вы используете версию этих библиотек, отличную от AMD. – ilpaijin

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