我想单击“导出”按钮,并将“导出”查询参数设置为true,将其转移到路由“主目录”。我不希望这个查询参数刷新我的路线。因此,这里是我的路由是怎么样子:URL中未显示更改查询参数
export default Route.extend(ApplicationRouteMixin, {
queryParams: {
export: {
refreshModel: false
}
}
})
在我的控制,我试图观察查询参数并调用一个函数,它不出口了我之后,我想设置的查询参数回到null。这里是我的控制器:
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: {
}
})
但我的问题是,当我设置的查询参数为空,也不会在URL上改变。我想知道我在这里错过了什么,不会导致这种行为。 另外,我不知道如果使用观察查询参数是触发某些操作的最佳解决方案。
所以基本上你想'出口'始终为空,并只是用它来链接触发导出? – Lux
好吧不总是空,我希望它被设置为null当我最初转移到该路线能够下载文件。然后在下载后立即将其设置为空。这个导出按钮在应用程序级别,可以从所有路线访问。所以用户将能够通过点击导出按钮再次将导出查询参数设置为真。 – user5471528