我有两个州
var books = {
name: "books",
url: "/books",
component: "booksComponent",
}
var specificBook = {
name: "books.specific",
url: "/{Id}",
component: "booksComponent",
resolve : {
Id: ["$stateParams", getId]
}
}
$stateProvider.state(books);
$stateProvider.state(specificBook);
function getId($stateParams){
return $stateParams.Id;
}
但由于某些原因,当我到达网址#/books/12345
时,该组件收到的ID为undefined
有什么不对?我应该以不同的方式指定我的路线吗?
答案 0 :(得分:0)
当您拥有URL时,它们具有被称为参数的动态部分,您可以为指定参数的那些选项提供多个选项。
$stateProvider
.state('books.specific', {
url: "/books/:id",
templateUrl: 'books.specific.html',
controller: function ($stateParams) {
expect($stateParams).toBe({id: "42"});
}
})
<强>(OR)强>
或者,您可以使用大括号。
url: "books/{Id}"
如果您遇到问题#/ books / 12345 ,则必须将您的网址更改为模式2 网址:&#34;图书/ {Id}&#34; ,然后你就可以按照自己的意愿工作了。
问候。
答案 1 :(得分:0)
你可以这样做:
resolve: {
Id: function ($stateParams) {
return $stateParams.Id;
}
}
我不知道为什么你会想要$ stateParams.Id可以注入你的控制器并直接使用。请记住,您需要添加“ID&ID”。到你的控制器功能,以便使用它。干杯