Czy istnieje rozszerzenie do szkieletu wiadomości Flash? Wydaje się, że jest to typowa cecha w Frameworkach WWW (przynajmniej po stronie serwera). Wydaje się, że nikt, a ja usiłowałem zrobić własny:Wiadomości Flash BackboneJS
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
Teraz, zastanawiałem się, w jaki sposób można automatycznie wprowadzić je do moich poglądów. Ja lubię moje wiadomości, aby pokazać, kiedy używać Backbone.Router.navigate()
np
app.flashMessages.add("success", "Successfully logged in")
appRouter.navigate("dashboard")
# flash messages should show when I render the view
Woooaa. Idealny! Szukałem tego rodzaju rozwiązania. +1 –
Świetnie! Czy możesz wyjaśnić, dlaczego klonujesz 'Backbone.Events', a nie używasz istniejącego obiektu? – skalee
Po pierwsze, nie klonuj go, nie usuwaj z niego pustego obiektu, np. jak wspomniano powyżej lub przez 'var Dispatcher = Backbone.Events.extend ({});' ponieważ wszystkie konstruktory szkieletu wydają się mieć wbudowaną metodę 'extend'. Co do tego, dlaczego utworzyć inny obiekt zamiast używać Backbone.Events - powiedziałbym, ponieważ nie chcesz zmieniać struktury, z reguły i tworzenie obiektu Dispatched może później wymagać dodania niestandardowych metod. IMO w ten sposób jest po prostu czystsze. –