Ich versuche, eine globale Eigenschaft auf dem Anwendungscontroller durch Klicken auf eine Schaltfläche auf einer der Vorlagen zu aktivieren. Ich habe einige Sachen über Action-Sprudeln gelesen, aber kann es nicht funktionieren.Senden von Aktionen an den Anwendungscontroller in EmberJS
Hier ist die Eigenschaft und Wirkung auf die Anwendungs Controller
export default Ember.Controller.extend({
isAuthenticated: true,
actions: {
logIn: function(){
this.toggleProperty('isAuthenticated');
}
}
});
Und hier ist die Aktion mit einer login.hbs Vorlagendatei (Ich werde dies in eine richtige Taste schalten bald)
<span {{action 'logIn'}}>
{{#link-to 'boards' class="btn-l bg-blue white db mtl link bn w-100"}}Login{{/link-to}}
</span>
Wie kann ich sicherstellen, dass die Aktion die Eigenschaft auf dem Application Controller umschaltet?
oder in einer Funktion wie this.get ('fremdercontroller'). Send ("actionname", parameter1, parameter2 ...); Wenn der Fremdcontroller injiziert oder sowieso bereitgestellt wird –
Würde dies auf die gleiche Weise mit einer Schaltfläche innerhalb einer Komponente funktionieren? – jermainecraig
@jermainecraig Nein, da Sie den Controller nicht innerhalb der Komponente injizieren können. Dazu müssen Sie Abschlussaktionen verwenden, die von template.hbs an die Komponente gesendet werden sollen. – kumkanillam