Tôi đang sử dụng BackboneJS với RequireJS cho một ứng dụng tôi đang xây dựng.Biến toàn cục trong bộ định tuyến BackboneJS bằng cách sử dụng RequireJS
Hồ App
initialises Router:
// Define application router
var router = new AppRouter();
Backbone.history.start();
Và sau đó Router sẽ kiểm soát các hoạt động của hệ thống.
var App = Backbone.Router.extend({
routes: {
"project/:id": "getProject",
"projects": "getProjects",
"*actions": "defaultRoute"
},
getProject: function (id) {
// dashboard.set('some_key', 'some_value');
},
getProjects: function() {
// dashboard.set('some_key', 'some_value');
},
defaultRoute: function() {
// dashboard.set('some_key', 'some_value');
}
});
Tôi đã thêm Dashboard
mô hình và chế độ xem tôi sử dụng để hiển thị thông tin toàn cầu về trạng thái của hệ thống tại bất kỳ thời điểm đã định nào. (Điều này sẽ ngồi ở phía trên cùng của cửa sổ). Chế độ xem của nó theo dõi mô hình của nó để thay đổi giá trị và hiển thị lại khi cần thiết. Điều này hoạt động tốt.
Tôi muốn tránh phải viết lại này bao giờ sau khi ban đầu instantiation đối tượng của tôi:
var dashboard = new DashboardModel();
var dashboardView = new DashboardView({ model: dashboard });
$('#dashboard-placeholder').html(dashboardView.render().el);
Những gì tôi cần, mặc dù là để có thể tiếp cận đối tượng này bất cứ nơi nào (một thể hiện của Dashboard
của tôi mô hình). Tại thời điểm này tôi khởi tạo nó trong App
nhưng tôi không thể truy cập nó trong Router nếu tôi làm điều này. Tôi không thực sự muốn định nghĩa nó trong router bởi vì điều đó không cảm thấy như nhiệm vụ phù hợp cho Router thực hiện.
Làm cách nào và nơi nào tôi xác định trường hợp này của mô hình Dashboard
của tôi?
câu trả lời Brilliant, cảm ơn bạn rất nhiều. Tôi đã có một cách tiếp cận singleton trong tâm trí nhưng vẫn không chắc chắn làm thế nào để thực hiện một phương pháp tĩnh! Làm việc tuyệt vời, cảm ơn bạn. – Alex