2012-09-12 12 views
6

Về ví dụ BoilerplateJs, cách chúng ta nên điều chỉnh các mô-đun đó để liên lạc theo cách như vậy khi người dùng thực hiện bất kỳ thay đổi nào đối với một mô-đun, các mô-đun liên quan khác sẽ được cập nhật với thay đổi đó. Ví dụ: nếu có mô-đun truy xuất dữ liệu đầu vào từ người dùng dưới dạng tên và bán hàng và mô-đun khác để cập nhật dữ liệu đã truy xuất đó trong bảng hoặc biểu đồ, bạn có thể giải thích một số ví dụ. xử lý?Có cách nào để giao tiếp với các mô-đun trong boilerplatej không?

Cảm ơn !!

Trả lời

3

Trong BoilerplateJS, mỗi mô-đun của bạn sẽ có đối tượng moduleContext riêng của nó. Đối tượng ngữ cảnh mô-đun này chứa hai phương thức 'nghe' và 'thông báo'. Hãy xem lớp ngữ cảnh tại '/src/core/context.js' để biết thêm chi tiết.

Thành phần cần phải 'lắng nghe' sự kiện, nên đăng ký sự kiện bằng cách chỉ định tên của sự kiện và trình xử lý gọi lại. Thành phần nâng cao sự kiện nên sử dụng phương thức 'thông báo' để cho người khác biết điều gì đó thú vị đã xảy ra (tùy chọn chuyển một tham số).

Nhận bản cập nhật mã BoilerplateJS mới nhất từ ​​GitHub. Tôi chỉ cam kết những thay đổi với việc thực hiện clickCounter thành phần hỗn hợp trong đó 'thành phần clickme' nâng cao một sự kiện và 'thành phần xổ số' lắng nghe sự kiện để phản hồi.

Mã thông báo cho các sự kiện:

moduleContext.notify('LOTTERY_ACTIVITY', this.numberOfClicks()); 

Mã để nghe các sự kiện:

moduleContext.listen("LOTTERY_ACTIVITY", function(activityNumber) { 
    var randomNum = Math.floor(Math.random() * 3) + 1; 
    self.hasWon(randomNum === activityNumber); 
}); 
+0

btw .. BoilerplateJS sử dụng một phiên bản sửa đổi nhẹ của [pubsub.js] (https: // github.com/federico-lox/pubsub.js) thực hiện từ Federico Lucignano đằng sau hậu trường. – Hasith

0

Tôi sẽ xem xét sử dụng thư viện Đăng ký xuất bản, chẳng hạn như Amplify. Sử dụng kỹ thuật này rất dễ dàng cho một mô-đun để hoạt động như một nhà xuất bản các sự kiện và những người khác đăng ký làm người đăng ký, lắng nghe và trả lời những sự kiện này theo cách được tách riêng.

Vì bạn đã sử dụng Knockout, trước hết bạn có thể quan tâm đến việc thử plugin đầu tiên của Ryan Niemeyer knockout-postbox. Thêm thông tin về thư viện này là available here bao gồm a demo fiddle. Bạn luôn có thể chuyển sang Amplify sau nếu bạn yêu cầu.

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