W moim pliku mops mam ten kawałek kodu

each doc, i in docs
      li.list-group-item
        a.btn.btn-default(href='/docs/edit/'+doc._id)=doc.docname
        b  
        button.btn.btn-primary.pull-right(type='button' data-toggle='modal' data-target='#login-modal') Share
        #login-modal.modal(role='dialog')
            .modal-dialog
                .modal-content
                    .modal-header
                        h2 Invite users
                        button.close(type='button' data-dismiss='modal') ×
                    .modal-body
                        form(name='form' onsubmit='put();' method='POST', action='/docs/share/'+doc._id)
                            #form-group
                                label Who would you like to share it with? (Username)
                                input.form-control(name='userfriend' type='text')
                            input.btn.btn-primary(type='submit' value='Submit')
                    .modal-footer
                        button.btn.btn-primary(type='button' data-dismiss='modal') Close

Problem polega na tym, że chociaż przycisku udziału zabierze mnie do Docs / Share /: ID Id Id jest zawsze pierwszym dokumentem na liście. Jest to dziwne, ponieważ używam właściwości doc._id dla innego przycisku, a jedno działa. Czy jest coś specjalnego w przycisku modalnym, który nie pozwala na używanie identyfikatorów innych niż pierwszego wpisu?

Być bardziej jasnym, powiedzmy, że istnieją dwa wpisy w moich dokumentach: A i B. Ich IDS odpowiednio A i B. Przycisk Udostępnij przycisk A, a przyciskiem Udostępniania B wysyła zapytanie do Docs / Share / A, gdy przycisk Udostępnia B powinien wysłać zapytanie do Docs / Share / B. Nawet gdy jest więcej dokumentów, przycisk akcji zawsze wysyła go na pierwszą listę. Po usunięciu pierwszego na liście wyśle zapytanie do nowego na liście. Jakieś pomysły, jak to naprawić? Dla tła używam nodejs i mangusta w koordynacji z tym, ale nie sądzę, aby to konieczne, ponieważ inne strony internetowe działają dobrze z właściwością doc._id, jedynym przyciskiem modalnym, który wydaje się mieć problemy z tylko doc._id pierwszego DOC na liście.

0
Notemaster 7 grudzień 2019, 23:53

1 odpowiedź

Najlepsza odpowiedź

Twój problem jest z wieloma modami na stronie z tym samym identyfikatorem. Ta linia znajduje się w każdej pętli:

#login-modal.modal(role='dialog')

Nie ma nic wyjątkowego o tym identyfikatorze, więc kiedy zadzwonisz do swojego modalności przez ID, użyje go po prostu pierwszy, który znajdzie. Możesz wygenerować dwadzieścia modów na swojej stronie, ale wszystkie mają identyfikator login-modal.

Zmień tę linię, aby dołączyć identyfikator DOC, a następnie upewnij się, że dodasz go do połączenia modalnego, gdziekolwiek, gdzie znajduje się kod.

.modal(id= ('login-modal-' + doc._id) role='dialog')
2
Graham 8 grudzień 2019, 03:51