[英]router.js Function not executed
// 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的一部分,我沒有使用NEW,因為它給問題提供了一個不確定的函數,即它是否與上面的錯誤有關
require(['app'], function(AppView){
AppView.initialize();
});
我做了一個console.Router.initialize()之后的日志; 在app.js上,它可以顯示。 我還在該應用程序router.js中一直在上面進行控制台日志記錄,除此之外,它也沒有顯示該函數內的任何內容。
控制台僅顯示2個控制台日志(在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
};
});
可能您正在使用非AMD版本的Backbone.js和Underscore.js。
這樣,您必須在主文件/配置文件中添加所謂的“墊片”。
shim :為不使用define()聲明依賴關系和設置模塊值的較舊的傳統“瀏覽器全局變量”腳本配置依賴關系,導出和自定義初始化。 http://requirejs.org/docs/api.html#config-shim
如您所見,此依賴關系已設置並導出了lib,以便您可以在腳本中使用它。
因此,在您的main / config文件中,在路徑之后嘗試添加此勻場件:
paths: {
...
},
shim: {
'backbone': {
deps: ['jquery','underscore'],
exports: 'Backbone'
}
}
現在我想你可以繼續...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.