Chúng tôi có thể sử dụng params
, tính năng mới của UI-Router:
Tham chiếu API / ui.router.state / $ stateProvider
params
Bản đồ tùy chọn cấu hình các tham số được khai báo trong url hoặc xác định các tham số không phải url bổ sung. Đối với mỗi tham số đang được cấu hình, thêm một đối tượng cấu hình được khóa vào tên của tham số.
Xem phần: " ... hoặc xác định các tham số không phải url bổ sung ... "
Vì vậy, def nhà nước sẽ là:
$stateProvider
.state('home', {
url: "/home",
templateUrl: 'tpl.html',
params: { hiddenOne: null, }
})
Một vài ví dụ hình thành tài liệu được đề cập ở trên :
// define a parameter's default value
params: {
param1: { value: "defaultValue" }
}
// shorthand default values
params: {
param1: "defaultValue",
param2: "param2Default"
}
// param will be array []
params: {
param1: { array: true }
}
// handling the default value in url:
params: {
param1: {
value: "defaultId",
squash: true
} }
// squash "defaultValue" to "~"
params: {
param1: {
value: "defaultValue",
squash: "~"
} }
EXTEND - ví dụ hoạt động: http://plnkr.co/edit/inFhDmP42AQyeUBmyIVl?p=info
Dưới đây là một ví dụ về định nghĩa trạng thái:
$stateProvider
.state('home', {
url: "/home",
params : { veryLongParamHome: null, },
...
})
.state('parent', {
url: "/parent",
params : { veryLongParamParent: null, },
...
})
.state('parent.child', {
url: "/child",
params : { veryLongParamChild: null, },
...
})
Đây có thể là một cuộc gọi sử dụng ui-sref:
<a ui-sref="home({veryLongParamHome:'Home--f8d218ae-d998-4aa4-94ee-f27144a21238'
})">home</a>
<a ui-sref="parent({
veryLongParamParent:'Parent--2852f22c-dc85-41af-9064-d365bc4fc822'
})">parent</a>
<a ui-sref="parent.child({
veryLongParamParent:'Parent--0b2a585f-fcef-4462-b656-544e4575fca5',
veryLongParamChild:'Child--f8d218ae-d998-4aa4-94ee-f27144a61238'
})">parent.child</a>
Kiểm tra ví dụ ở đây