2012-10-31 10 views
6

Mam różne przyciski (jeden do tworzenia "sprintu", drugi do tworzenia komentarza, itp.). Formularze do wykonywania tych zadań są dołączane do modalnego okna dialogowego, które jest wyświetlane po kliknięciu różnych przycisków.Jeden modalny rendering różnych szablonów po kliknięciu na element

Są przepływy:

kliknięcie na przycisk "Sprint"> append "Sprint" form> pokazać modalne

następnie po kliknięciu na przycisk innej:

kliknij na Przycisk "Skomentuj"> pusta treść modalna> dołącz "Formularz komentarza"> pokaż modalny

Obecnie różne treści są zapisywane w ciągu znaków, a ja s dołączone do modalu po kliknięciu przycisku.

Ale teraz używam szablonów szkieletu i podkreślenia i nie mogę wymyślić, jak zrobić to samo. Nie chcę mieć wszystkich szablonów wewnątrz modalu i pokazywać je w zależności od klikniętego przycisku; Chcę dodać już kliknięty szablon do kliknięcia.

Czy jest jakiś sposób na zrobienie tego z kręgosłupem i podkreśleniem?

Odpowiedz

1

Shvetusya ma ogólne pojęcie, ale oto konkretny przykład, który, miejmy nadzieję, będzie jaśniej:

var Modal = Backbone.View.extend({ 
    render: function() { 
     this.$el.append(this.options.form.render().$el); 
    } 
}); 

var SprintForm = Backbone.View.extend({ 
    render: function() { 
     // Use your templating engine to make a "sprint" form 
     // eg. this.$el.html(sprintTemplate()); 
    } 
}); 

var CommentForm = Backbone.View.extend({ 
    render: function() { 
     // Use your templating engine to make a "comment" form 
     // eg. this.$el.html(commentTemplate()); 
    } 
}); 

// handler for: click on "Sprint" button > 
handleSprintButtonClick: function() { 
    var sprintForm = new SprintForm(); 
    var modal = new Modal({form: sprintForm}); 
    $(document.body).append(modal.render().$el); 
} 

// handler for: click on "Comment" button > 
handleCommentButtonClick: function() { 
    var commentForm = new CommentForm(); 
    var modal = new Modal({form: commentForm}); 
    $(document.body).append(modal.render().$el); 
} 
0

Rozwiązałem podobny problem, oddzielając kontener dla modalu w jego własnym widoku.

Następnie, po kliknięciu przycisku "sprint", wyślij widok formularza "sprintu" i dołącz ten el jako do modalu, a następnie otwórz modalny.

Podobnie po kliknięciu przycisku "komentarz" renderuj widok "komentarza" i dołącz jego el do modalu.

W ten sposób można użyć szablonów formularza "sprint" i "komentarza".

Zamówienie ten post tutaj również (użyłem go dla mojej obecnej konfiguracji):

Managing A Modal Dialog With Backbone And Marionette

Powiązane problemy