2012-11-27 42 views
6

Tôi đang cố gắng để làm theo Organizing your application using Modules (require.js Tôi đang đấu tranh để hiểu cách định tuyến hoạt động.Backbone.js Router sự kiện ràng buộc không bắn

tôi không thể có được đơn giản ràng buộc để làm việc cho chỉ số:

// Filename: router.js 
define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'views/projects/list' 
], function ($, _, Backbone, ProjectListView) { 
    var AppRouter = Backbone.Router.extend({ 
     routes: { 
      // Define some URL routes 
      '': 'index' 
     } 
    }); 

    var initialize = function() { 
     var app_router = new AppRouter(); 

     app_router.on('index', function() { 
      alert("index"); // this never gets called 
     }); 

     Backbone.history.start(); 

     return app_router; 
    }; 
    return { 
     initialize: initialize 
    }; 
});

Khi trang được tải có gì xảy ra. Tuy nhiên, thao tác này hoạt động:

// Filename: router.js 
define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'views/projects/list' 
], function ($, _, Backbone, ProjectListView) { 
    var AppRouter = Backbone.Router.extend({ 
     routes: { 
      // Define some URL routes 
      '': 'index' 
     }, 
     index: function() { alert("works"); } 
    }); 

    var initialize = function() { 
     var app_router = new AppRouter; 

     Backbone.history.start(); 

     return app_router; 
    }; 
    return { 
     initialize: initialize 
    }; 
}); 

Tôi có thiếu gì đó không?

Trả lời

10

Ok, vì vậy đây là cách nó được thực hiện:


    var initialize = function() { 
     var app_router = new AppRouter(); 

     app_router.on("route:index", function() { 
      alert("hello world"); 
     }); 

     Backbone.history.start(); 

     return app_router; 
    }; 
+1

Cảm ơn người đàn ông, tôi là tất cả những thứ sáu phải vật lộn với điều này tại nơi làm việc và bây giờ tôi đã nhìn thấy ánh sáng;) – Puigcerber

+0

@Fdr http: // stackoverflow. com/questions/20017210/router-js-function-not-execute Bạn có thể giúp tôi ở đây :) Cảm ơn bạn – CodeGuru

Các vấn đề liên quan