本文介绍了Angular UI-Router 一种状态下的更多可选参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在不使用查询字符串而只使用一个路由名称的情况下允许我的路由使用可选参数?我目前正在指定每条路线五次以允许部件的任意组合:
How can I allow optional parameters to my routes without using a query string and only using one route name? I am currently specifying each route FIVE TIMES to allow for any combination of parts:
所有部分都必须是可选的.路线必须解决任何变化.
.state("login", { url: "/login", templateUrl: "login.html", params: { a: null, b: null, c: null, d: null } })
.state("loginA", { url: "/login/:a", templateUrl: "login.html", params: { b: null, c: null, d: null } })
.state("loginAB", { url: "/login/:a/:b", templateUrl: "login.html", params: { c: null, d: null } })
.state("loginABC", { url: "/login/:a/:b/:c", templateUrl: "login.html", params: { d: null } })
.state("loginABCD", { url: "/login/:a/:b/:c/:d", templateUrl: "login.html" })
必须有一种更简单/更干净/不那么丑的方法.
There MUST be an easier / cleaner / less ugly way.
推荐答案
简短回答....
.state('login', {
url: '/login/:a/:b/:c/:d',
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
params: {
a: { squash: true, value: null },
b: { squash: true, value: null },
c: { squash: true, value: null },
d: { squash: true, value: null },
}
})
这篇关于Angular UI-Router 一种状态下的更多可选参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!