Flash消息的骨干是否有扩展?它似乎是Web框架中的一个常见功能(至少服务器端).似乎没有,我试图自己做:
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
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何将它们自动注入我的视图中.当我使用Backbone.Router.navigate()
eg 时,我会想要显示我的消息:
app.flashMessages.add("success", "Successfully logged in")
appRouter.navigate("dashboard")
# flash messages should show when I render the view
Run Code Online (Sandbox Code Playgroud)
mvb*_*fst 13
我的5美分 - 使用Backbone进行Flash消息似乎有点过分.如果页面上只有1个flash消息实例,那么最好不要使用单独的模型.
相反,我会使用Flash消息和全局调度程序的视图:
Dispatcher = _.extend({}, Backbone.Events);
Run Code Online (Sandbox Code Playgroud)
创建视图:
var FlashMessage = Backbone.View.extend({
initialize: function() {
Dispatcher.bind('show_flash_message', this.render);
},
render: function(msg) {
// do something with the message
}
});
Run Code Online (Sandbox Code Playgroud)
从应用程序中您必须显示Flash消息的部分,执行
Dispatcher.trigger('show_flash_message', 'Some message');
Run Code Online (Sandbox Code Playgroud)