backbone.js - BackboneJS Flash 消息

标签 backbone.js

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/

相关文章:

javascript - Backbone.js 无法识别变量

javascript - joint.setTheme 不是 JointJS-Rappid 中的函数

javascript - 如何匹配 Backbone 路由器中的日期路径?

javascript - 由 jQuery 设置的内联 CSS 'resize event' 在窗口调整大小后重置为默认值

javascript - 杀死 View ,全局事件总线。 Backbone

backbone.js - 如何在 Backbone JS 中处理长按和右键单击事件

javascript - View 之间的backbone.js事件

javascript - 如何在 Parse Cloud Code 中获取对象

django - 使用类似于 Rails JST 的 Django 管道分配 Backbone 模板?

javascript - View的backbone变化模型