错误:无法解析'api.movieDetails'从状态'api'
Error: Could not resolve 'api.movieDetails' from state 'api'
我一直在学习AngularJS:UI路由器中的UI路由器教程。我已经研究了这些问题,但我找不到我的问题的答案。这是我正在做的一件非常简单的事情,所以这里没有先进的技术
因此,用户应该通过单击列表中的电影来进入电影详细信息状态。但每当我点击它,控制台就会显示:
错误:无法从状态"api"解析"api.moveDetails"
我该怎么解决这个问题?
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('api', {
url: '/api',
controller: 'apiController',
templateUrl: '/movieSearch.html'
})
.state('details', {
url: "/movieDetails/:id",
templateUrl: "/movieDetails.html"
});
//Catch all
$urlRouterProvider.otherwise("/movie");
});
我的html片段:
<div>
<img src="{{movie.posters.thumbnail}}" />
<a ui-sref="api.details({id: movie.id})"><h2>{{movie.title}}</h2></a>
</div>
apiController.js
module.exports = function apiController($scope, apiFactory, $stateParams) {
$scope.data = {}
$scope.$watchGroup(['data.q', 'data.page_limit', 'data.page'], function() {
//Use movie loader
apiFactory.getMovies($scope.data.q, $scope.data.page_limit, $scope.data.page)
.then(function(response) {
$scope.movies = response.data.movies
});
})
}
首先,状态api.details
缺少"id"参数,因此需要添加状态定义:
.state('details', {
url: "/movieDetails/:id",
templateUrl: "/movieDetails.html"
});
然后你需要重定向到状态并传递电影的参数:
<a ui-sref="api.details({id: movie.id})"><h2>{{movie.title}}</h2></a>
现在,将$stateParams
注入到apiController
中,并查看使用console.log($stateParams.id);
传递到状态的ID
相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 对API数据使用声明性绑定
- 错误:无法解析'api.movieDetails'从状态'api'