$stateParams преобразует значение в строку
Я использую UI-Router
, Вот одно из моих состояний, в которое я направляюсь через ui-sref
:
.state("community", {
url: "/community/:community_id",
controller: "CommunityCtrl",
templateUrl: "/static/templates/community.html"
})
В одном из моих шаблонов, откуда я перехожу в состояние "сообщества":
<div ui-sref="community({community_id: community.community_id})"></div>
Вот мой объект сообщества:
{
name: 'Community name',
community_id: 11 //int, not a string
}
Как видите, ключ 'community_id' содержит значение int, а не строковое значение. Однако, когда я получаю доступ к этому параметру через $stateParams
Я получил:
community_id: "11" //string
Почему я получаю строку?
1 ответ
Самый простой способ получить community_id
как число (int), чтобы объявить этот параметр как int
- {community_id:int}
.state("community", {
url: "/community/{community_id:int}",
controller: "CommunityCtrl",
templateUrl: "/static/templates/community.html"
})
Проверьте документ о .state()
установка url
:
url
фрагмент с необязательными параметрами. Когда состояние перемещается или переходит к,$stateParams
Сервис будет заполнен любыми переданными параметрами.(См. UrlMatcher UrlMatcher} для более подробной информации о приемлемых шаблонах)
Примеры:
url: "/home" url: "/users/:userid" url: "/books/{bookid:[a-zA-Z_-]}" url: "/books/{categoryid:int}" url: "/books/{publishername:string}/{categoryid:int}" url: "/messages?before&after" url: "/messages?{before:date}&{after:date}" url: "/messages/:mailboxid?{before:date}&{after:date}"