Có phần mở rộng cho xương sống cho tin nhắn Flash không? Nó có vẻ là một tính năng phổ biến trong các khung Web (ít nhất là ở phía máy chủ). Dường như không có, và tôi đã cố gắng tự làm cho mình:BackboneJS Tin nhắn flash
class FlashMessenger extends Backbone.Model
constructor: ->
@messages = []
# add a message to the messages array
add: (type, message) ->
@messages.push
type: type
message: message
# returns all existing messages and clearing all messages
getMessages: ->
ret = @messages.slice(0)
@messages = []
return ret
Bây giờ, tôi tự hỏi làm thế nào tôi có thể tự động đưa chúng vào quan điểm của mình. Tôi sẽ thích thông điệp của Mẹ để hiển thị khi tôi sử dụng Backbone.Router.navigate()
ví dụ:
app.flashMessages.add("success", "Successfully logged in")
appRouter.navigate("dashboard")
# flash messages should show when I render the view
Woooaa. Hoàn hảo! Tôi đang tìm kiếm loại giải pháp đó. +1 –
Tuyệt vời! Bạn có thể giải thích tại sao bạn sao chép 'Backbone.Events', không sử dụng đối tượng hiện có? – skalee
Đầu tiên, bạn không sao chép nó, bạn mở rộng một đối tượng trống với nó, ví dụ: như đã đề cập ở trên hoặc bởi 'var Dispatcher = Backbone.Events.extend ({});' như tất cả các contstructors Backbone dường như có sẵn phương thức 'extend'. Đối với lý do tại sao để tạo một đối tượng thay vì sử dụng Backbone.Events - Tôi sẽ nói bởi vì bạn không muốn thay đổi framework, như một quy tắc, và tạo ra một đối tượng Dispatched sau này có thể yêu cầu thêm các phương thức tùy chỉnh. IMO theo cách này chỉ là sạch hơn. –