我正在使用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
}
正如您所见,关键字&#39; community_id&#39;包含int值而不是字符串值。但是,当我通过$stateParams
访问此参数时,我得到:
community_id: "11" //string
为什么我会收到一个字符串?
答案 0 :(得分:11)
将 community_id
作为数字(int)的最简单方法是将该参数声明为int
- {community_id:int}
< / p>
.state("community", {
url: "/community/{community_id:int}",
controller: "CommunityCtrl",
templateUrl: "/static/templates/community.html"
})
查看有关.state()
setting 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}"