#javascript #angularjs
#javascript #angularjs
Вопрос:
Я знаю, что в Angularjs есть много способов сделать это. Например, с помощью $location и т.д.
Но я не могу найти, как получить значение, если URL выглядит так:
Как получить значение один из этого URL?
Для маршрутизации я использую stateProvider:
export default angular.module("examino.userTestSession", ["ui.router"])
.config(function($stateProvider) {
$stateProvider
.state("testing", {
url: "/test",
controller: "UserTestSessionController",
templateUrl: "./app/components/userTestSession/user-test-session.html",
controllerAs: "vm"
})
.state("sessionExpired", {
url: "/sessionExpired",
controller: "UserTestSessionController",
templateUrl: "./app/components/userTestSession/user-test-session-expired.html",
controllerAs: "vm"
});
})
Могу ли я получить это значение при определении состояния «тестирование»?
Ответ №1:
Просто используйте параметры маршрута с :param
Маршруты
export default angular.module("examino.userTestSession", ["ui.router"])
.config(function($stateProvider) {
$stateProvider
.state("testing", {
url: "/test/:id", //Add the parameter here
controller: "UserTestSessionController",
templateUrl: "./app/components/userTestSession/user-test-session.html",
controllerAs: "vm"
})
.state("sessionExpired", {
url: "/sessionExpired",
controller: "UserTestSessionController",
templateUrl: "./app/components/userTestSession/user-test-session-expired.html",
controllerAs: "vm"
});
})
Контроллер
var myId = $stateParams.id
Примечания
/test/:id
будет совпадать /test/bob
, /test/1235
и /test/
, но не /test
или /test/bob/other
/test/{id}
такой же, как и предыдущий
/test/{id:int}
означает, что параметр интерпретируется как целое число
/test/{id:[0-9]{1,8}}
означает, что идентификатор должен соответствовать предоставленному регулярному выражению