Also habe ich ein Teil dieser App, die eine modale-Fenster Komponente hat, die öffnen soll, wenn Sie die Eigenschaft auf true gesetzt aktiviert ..Wie lege ich eine Eigenschaft einer Ember-Komponente von einer anderen Komponente fest?
application.hbs hat dies:
{{#modal-window enabled=true title="Manage Admins"}}
{{/modal-window}}
In modal -window.js Ich habe eine Aktion closeModal, die this.set('enabled',false)
tut und ebenfalls, um es zu öffnen, setzen Sie es auf wahr.
Es gibt ein Nav-Menü am unteren Rand der App, das verschiedene Komponenten help-link, admin-link usw. verwendet. Admin-link ist auch eine Komponente mit eigener hbs und js-Datei. So wurde die App gestaltet. Am unteren Ende index.hbs:
<div class="configs-list-footer">
{{help-link}}
{{admin-link action='showModal'}}
<div class="logout-link">
<a {{action 'invalidateSession'}} class="tv-icon">
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><g transform="translate(1.000000, 1.000000)"><path d="M0.347826087,8 L10.7826087,8"></path><polyline id="Stroke-937" points="8 5.2173913 10.7826087 8 8 10.7826087"></polyline><path d="M1.03123478,4.83526957 C2.23471304,2.18831304 4.90253913,0.347617391 8.00027826,0.347617391 C12.2263652,0.347617391 15.6524522,3.77370435 15.6524522,7.9997913 C15.6524522,12.2258783 12.2263652,15.6519652 8.00027826,15.6519652 C4.88862609,15.6519652 2.21036522,13.7952696 1.01453913,11.1288348"></path></g></g></svg>
<span>Logout</span>
</a>
</div>
Die Aktion gibt eine Aktion in der Admin-link.js-Datei aufruft, aber es scheint keine Möglichkeit zu sein modal-Fenster zu sagen, auf true gesetzt ist aktiviert von AUSSENSEITE von sich selbst, die eine Grundfunktion jedes Programms ist.
Ich kann nicht für das Leben von mir nach der Suche im Internet für Stunden herauszufinden, wie einfach die 'aktiviert' Eigenschaft von Modal-Fenster auf wahr gesetzt, wenn Sie auf die Admin-Link-Komponente (die im Grunde ein Anker-Tag ist) ..
Ich habe herausgefunden, wie eine Aktion von der Index-Route aufgerufen wird, aber dann genau wie mit Komponente zu Komponente kann ich nicht herausfinden, wie Sie die Eigenschaft des modalen Fensters aus der Indexroute ändern.
Immer wenn jemand online fragt, wie man das macht, werden sie mit "Komponenten sollten isoliert und nichts von allem anderen" ohne offensichtlichen Weg, etwas so Grundlegendes für eine UI zu tun getroffen.
Ich bin mit Ember 2.12.1
Ich habe eine Bedingung für das Modal-Fenster selbst, aber das ist eine gute Idee. Dann kann ich diese Bedingung von der Route selbst im Gegensatz zu der Komponente manipulieren. Ich möchte immer noch die Antwort auf meine Frage nur für zukünftige Zwecke sehen. Unsere gesamte App wurde in Ember von einem externen Auftragnehmer gebaut und ich werde es gut lernen müssen. –
Also habe ich diesen Code dort eingefügt, aber ich bin nicht sicher, wo manAdminsIsOpen definieren soll. Ich nehme an, dass ich es mit this.set ('manageAdminsIsOpen') von der Aktion der Indexroute einstelle, aber ich kann es nicht zum Laufen bringen. –
Ich bin super damit verwirrt. Ich habe application.hbs, application.js, index.js, index.hbs und eine Tonne anderer Dateien, und genau wie in den offiziellen ember docs habe ich nie eine Ahnung, in welche Datei ich den Code schreiben soll. Ich habe es nur versucht isManageAdmins in jeder JS-Datei sowohl innerhalb der Ember-Erweiterung als eine Eigenschaft des Objekts dort oder nur in dem Javascript außerhalb dieser Block und es funktioniert nicht unabhängig davon, wo ich es stelle. Wird "manageAdminSOpen" nur gesetzt, wenn der Block dies definiert? Muss es irgendwo explizit definiert werden? –