Abfrageelemente vom Router entfernen
P粉005134685
P粉005134685 2023-08-25 22:53:17
0
1
443
<p>Ich verwende die Methode <code>replace</code>, um <code>query</code> hinzuzufügen. Wenn der Wert nicht existiert, weise ich ihn als <code>undefiniert</code> zu. </p> <pre class="brush:js;toolbar:false;">this.$router.replace({ Name: "admin-frs", Abfrage: { Grenze: this.pageSize, Seite: this.currentPage, Sortieren: this.sortbyapi ||. Sprache: this.sortbyapiLang || undefiniert, }, }) </pre> <p>Dies führt dazu, dass die Abfrageelemente aus der URL verschwinden, wenn die Abfragedaten aktualisiert werden, was akzeptabel ist. </p> <p>Aber es wird nicht aus dem Abfrageobjekt entfernt. </p> <p>Gibt es einen besseren Weg als diesen? </p> <p>Ist es außerdem möglich, die Abfrageelemente aus der Route abzurufen, wie <code>&limit=10...etc</code>? </p>
P粉005134685
P粉005134685

Antworte allen(1)
P粉982009874

如果我理解正确,OP希望操作传递给router.replace的查询对象。可以使用标准的js来实现。

首先,明确命名一个查询变量...

let query = $router.query;

要删除某个属性,可以使用js的delete运算符。例如,要删除query.limit...

// 删除limit属性
if (!this.pageSize) delete query.limit;

或者,如果你正在构建该查询,可以一开始就不添加limit属性...

let query = {};
if (this.pageSize) query.limit = this.pageSize;
if (this.currentPage) query.page = this.currentPage;
// 其他属性也是类似的处理
// query现在只包含上述选择的属性

进行任何这些操作后,将变量传递给路由器...

$router.replace({ name: "admin-frs", query });

要将其转换为字符串,可能有几种方法,包括许多您可能拥有的库中的方法,但原生的方法是...

let params = [];
for (let key in query)
  params.push(`${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`);
const queryString = params.join("&");
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!