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」プロパティを使用して変更できます。

残念ながら、バックボーンビューを通知機能に割り当てる方法はないと思いますが、必要な美学をカスタマイズするだけの場合は、CSSで十分です。

本当にハッキーなアプローチを採用したい場合は、標準のバックボーンビュー(Notifierクラスの一部であるBackbone.Notifier.NotificationView)であるNotificationViewを使用できます。これを実装にオーバーライドしてみることができますが、これは間違いなくハックなので、お勧めしません。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 に答える