Javascript 角度用户界面路由器-“;无法解析状态“;带参数
我只是尝试使用Angular UI路由器。我只有两种状态,一种是瞬间,一种是疯狂的简单。以下是我的应用程序:Javascript 角度用户界面路由器-“;无法解析状态“;带参数,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我只是尝试使用Angular UI路由器。我只有两种状态,一种是瞬间,一种是疯狂的简单。以下是我的应用程序: .config(function($stateProvider, $urlRouterProvider){ $stateProvider .state('items', { url: '/items', templateUrl: 'src/components/Items/l
.config(function($stateProvider, $urlRouterProvider){
$stateProvider
.state('items', {
url: '/items',
templateUrl: 'src/components/Items/list.html',
controller: 'ItemsController'
})
.state('item-details', {
url: '/item-details/:itemId',
templateUrl: 'src/components/Items/details.html',
controller: 'ItemDetailsController'
});
$urlRouterProvider.otherwise('/items');
});
还有一点我的HTML:
<a ui-sref="item-details/{{item.id}}">{{ item.name }}</a>
我希望我正在做一些非常明显的事情,但事实证明这比我预期的要复杂 试试这个
<a ui-sref="item-details({ itemId: item.id })">{{ item.name }}</a>
{{item.name}
您的ui sref
指令的语法错误。而不是这样做:
<a ui-sref="item-details/{{item.id}}">{{ item.name }}</a>
以上所有答案都是正确的
作为额外的即兴创作,它看起来像是项目细节
实际上可以成为项目
我建议您将项目详细信息
路由更改为项目。详细信息
,这将表明详细信息路由已从项目
状态继承
.state('item.details', {
url: '/item-details/:itemId',
templateUrl: 'src/components/Items/details.html',
controller: 'ItemDetailsController'
});
然后,您的ui sref
将成为
<a ui-sref=".details({itemId: item.id})">{{ item.name }}</a>
{{item.name}
愚蠢的语法陷阱!这很好用。感谢您的完整解释。请注意:您在ui sref文档中引用的链接不起作用。@amlyhamm刚刚进行了更新。.现在它将起作用。.您还可以查看我的答案,其中有一些额外内容可以改进您的代码。.谢谢您的建议,@pankajparkar。首先,我希望得到一个简单的例子。这可能是我下一步的方向@非常感谢amlyhamm upvote:)
.state('item.details', {
url: '/item-details/:itemId',
templateUrl: 'src/components/Items/details.html',
controller: 'ItemDetailsController'
});
<a ui-sref=".details({itemId: item.id})">{{ item.name }}</a>