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
现在,我想知道如何将它们自动注入(inject)到我的 View 中。我希望在使用
Backbone.Router.navigate()
时显示我的消息例如:app.flashMessages.add("success", "Successfully logged in")
appRouter.navigate("dashboard")
# flash messages should show when I render the view
最佳答案
我的 5 美分 - 使用 Backbone 发送消息似乎有点过头了。如果页面上只有 1 个 flash 消息实例,最好不要为其使用单独的模型。
相反,我会使用 Flash 消息的 View 和全局调度程序:
Dispatcher = _.extend({}, Backbone.Events);
创建 View :
var FlashMessage = Backbone.View.extend({
initialize: function() {
Dispatcher.bind('show_flash_message', this.render);
},
render: function(msg) {
// do something with the message
}
});
从应用程序中您必须显示 Flash 消息的部分,执行
Dispatcher.trigger('show_flash_message', 'Some message');
关于backbone.js - BackboneJS Flash 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178120/