Ich möchte auf einen "Export" -Button klicken und auf eine Route "nach Hause" mit "Export" Abfrageparameter als wahr festgelegt. Ich möchte nicht, dass dieser Abfrageparameter meine Route aktualisiert. Also hier ist, wie ich meine Route wie folgt aussieht:Ändern der Abfrageparameter wird nicht in der URL angezeigt
export default Route.extend(ApplicationRouteMixin, {
queryParams: {
export: {
refreshModel: false
}
}
})
In meinem Controller, ich versuche die Abfrage param zu beobachten und eine Funktion aufrufen, die den Export für mich tut und danach will ich die Abfrage param einstellen zurück zu null. hier ist mein Controller:
import Ember from 'ember'
const {Controller, inject} = Ember
export default Controller.extend({
// == Dependencies ==========================================================
session: inject.service(),
// == Keyword Properties ====================================================
queryParams: ['export'],
export: null,
queryParamsObserver: function() {
if (this.get('export')) {
this.exportFile()
this.set('export', null)
}
}.observes('export'),
// == Functions =============================================================
exportFile() {
},
// == Actions ===============================================================
actions: {
}
})
Aber mein Problem ist, dass, wenn ich die Abfrage param auf null gesetzt, wird es nicht auf die URL ändern. Ich frage mich, was ich hier vermisse, das dieses Verhalten nicht verursacht. Plus, dass ich mich wundere, wenn das Beobachten von Abfrageparameter die beste Lösung ist, um einige Aktionen auszulösen.
Also im Grunde wollen Sie 'export' immer Null sein, und verwenden Sie es nur für die Verknüpfung, um den Export auszulösen? – Lux
Nun, nicht immer null, ich möchte, dass es null gesetzt wird, wenn ich anfänglich auf diese Route gehe, um die Datei herunterladen zu können. dann setze es gleich nach dem Download auf Null. Diese Export-Schaltfläche, die ich habe, ist in Anwendungsebene und von allen Routen aus zugänglich. Damit kann der Benutzer den Exportabfrageparameter durch Klicken auf die Schaltfläche "Export" wieder auf "True" setzen. – user5471528