2

我正在使用Backbone.Notifier来显示警报。如何在其中显示自定义主干视图?有什么建议吗?

4

2 回答 2

3

不要认为它适合添加您自己的自定义视图。通知视图的自定义是通过 CSS 实现的。

要自定义按钮,您可以使用 css 属性:

buttons: [
    {'data-role': 'myOk', text: 'Sure', 'class': 'default', css: {width: 120}},
    {'data-role': 'myOk', text: 'Yes'}]

要自定义基本通知窗口,请使用“notifier”CSS 类。

您可以使用通知程序上的“baseCls”属性更改此设置。

不幸的是,我认为没有办法将 Backbone 视图分配给通知程序,但如果它只是自定义您想要的美学,那么希望 CSS 就足够了。

如果您真的想采用 hacky 方法,您可以使用 NotificationView,它是标准的 Backbone 视图(Notifier 类的一部分 - Backbone.Notifier.NotificationView)。您可以尝试将其覆盖到您的实现中,但这绝对是一个 hack,所以不推荐它。值得一看 notifer.js 源代码。

于 2012-11-26T10:20:40.820 回答
0

为了在backbone.notifier中显示我的自定义视图,我在插件中添加了以下几行

在return语句之前的notify函数中

    .......

    if(options.custView){
        msgInner.off('click'); //the turn off default behaviour which is to destroy view on click
        options.custView.destroyNotifier = removeFn; //now in the custom view i just call this.destroyNotification to destroy the notification 
        msgView.$el.find('.notifier-message').html(options.custView.render().el); //pasting my view on notification to display  
    }                   
    return msgView;
}

这就是我现在调用插件的方式

var notifier = new Backbone.Notifier({
            el : 'body',
            theme : 'clean'
        });

notifier.notify({
    custView : (new SomeView({
          x : 'xyz'
        })),
    ms : false,  //to aviod a timeout 
    destroy : true 
})
于 2012-11-27T09:44:10.153 回答