0

ビューで 1 つまたは 2 つの指定されたケースでロードできるように、モーダル ダイアログ機能を使用してリージョンまたは関数を定義する方法とMyApp.modal.show(content)場所

例:

var ModalRegion = Backbone.Marionette.Region.extend({
  el: "#modal",

  constructor: function(){
    _.bindAll(this);
    Backbone.Marionette.Region.prototype.constructor.apply(this, arguments);
    this.on("view:show", this.showModal, this);
  },

  getEl: function(selector){
    var $el = $(selector);
    $el.on("hidden", this.close);
    return $el;
  },

  showModal: function(view){
    view.on("close", this.hideModal, this);
    this.$el.modal('show');
  },

  hideModal: function(){
    this.$el.modal('hide');
  }
});

このビューでどのように使用しますか?

MyApp.Views.Layouts.Unauthenticated = Backbone.Marionette.Layout.extend({
  template: 'layouts/unauthenticated',

  regions: {
    //modal: ModalRegion, //Region must be specified as a selector string or an object with selector property
    tabContent: '#tab-content'
  },
  events: {
    'click #showLogin': 'showLogin'
  },
  views: {},
  showLogin: function(){
    this.views.login = BD.Views.Unauthenticated.Login;
    MyApp.modal.show(new this.views.login);
  },
4

1 に答える 1

1

あなたは2つの別の方法で行うことができます.

1)twブートストラップにオープンソースを使用し、ブートストラップなしでこれを使用する

2)独自のモーダルを好む場合は、独自の「基本」クラスを作成して抽象メソッドを定義することをお勧めします。コーヒースクリプトの例:

class MyApp.Views.Base.Modal extends Marionette.ItemView
  ... here is modal code like show etc.... just abstract class

class MyApp.views.model_custom extends MyApp.Views.Base.Modal
  ... and here is class with specific details of one modal like element, events, triggers etc...

JavaScriptで:

var MyApp.Views.Base.Modal = Backbone.Marionette.ItemView.extend({...}) 
var MyApp.views.model_custom = MyApp.Views.Base.Modal.extend({...}) 

itemView compositeView のようなすべてのクラスでこれを行うことを強くお勧めします。基本クラスを作成します...

于 2013-08-20T20:21:29.800 に答える