所以我确定这是一个简单的问题我只是忽略,因为我有类似的功能在其他控制器中工作。但由于某种原因,我收到了这个错误。
Error: [$injector:unpr] Unknown provider: tourinfoProvider <- tourinfo <- PhotoplanCtrl
http://errors.angularjs.org/1.4.8/$injector/unpr?p0=tourinfoProvider[object Object]3C-%tourinfo%%3C-%PhotoplanCtrl
但最糟糕的是它打印出tourinfo的数据!它实际上工作,所以虽然它说它不知道tourinfo是什么,它给我数据。这是我的控制器代码。
var app= angular.module('planoxApp')
app.controller('PhotoplanCtrl',['$http','$scope','$stateParams','$filter','$uibModal','$log',
'RecieverService','tourinfo',function($http,$scope, $stateParams,$filter,$uibModal,$log,RecieverService,tourinfo){
var tour = tourinfo
console.log(tour)
显然更多但是我把它砍掉了,因为它与问题无关。继承了该路线的决心,它应该从中获取tourinfo。
.state('home.photoplans', { //the main photoplan pages, with photoplan nav bar
url: '/photoplans/{id}',
templateUrl: 'photoplan/photoplanmain.html',
authenticate: true,
controller: 'PhotoplanCtrl',
resolve:{
tourinfo:function(RecieverService,$stateParams){
return RecieverService.tourinfo($stateParams.id);
}
}
这显然有效,否则我们永远不会到达控制器或页面。那么有人看到任何明显的问题吗?我真的很困惑,我做了20次,这是唯一一个给我带来问题的人。我不知道我做错了什么。如果需要,我会发布其他代码。
这是一个不起作用的傻瓜,虽然我不确定它是不是因为我的代码或我以前从未使用过plunkr的事实。只是警告我必须更改我的一些代码,否则我会添加10个以上的文件以便让所有内容运行。
答案 0 :(得分:1)
常见的错误是两次声明控制器。
即。您在路径定义中定义了控制器 PhotoplanCtrl :
.state('home.photoplans', { //the main photoplan pages, with photoplan nav bar
url: '/photoplans/{id}',
templateUrl: 'photoplan/photoplanmain.html',
authenticate: true,
controller: 'PhotoplanCtrl',
resolve:{
tourinfo:function(RecieverService,$stateParams){
return RecieverService.tourinfo($stateParams.id);
}
}
但你是否也在你的模板(或其他地方)宣布了它??
<div ng-controller="PhotoplanCtrl"></div>
更新:重复的控制器声明是问题。
如果这不是问题,另一件事就是确认在路由解析中调用RecieverService.tourinfo不是错误。
尝试在那时坚持断点。
resolve:{
tourinfo:function(RecieverService,$stateParams){
return RecieverService.tourinfo($stateParams.id);
}
最后,一个小问题,但你缺少一些分号:
var tour = tourinfo
console.log(tour)
答案 1 :(得分:0)
您忘记在括号中包含括号
var app = angular.module('planoxApp', []);