2016-03-24 39 views
2

好的,我查看了文檔,並直接從另一個有效的項目中獲取此代碼。我不知道爲什麼,但我不斷收到未知的提供商錯誤。我解決了所有可能的問題,角度指出他們的錯誤參考,所以如果你只是想聯繫我,那就不要浪費你的時間。我的角度應用程序不會識別我的服務(未知的提供商)

錯誤:

angular.js:13236 Error: [$injector:unpr] http://errors.angularjs.org/1.5.0/$injector/unpr?p0=waypointsProvider%20%3C-%20waypoints%20%3C-%20WaypointController 
at Error (native) 
at https://code.angularjs.org/1.5.0/angular.min.js:6:416 
at https://code.angularjs.org/1.5.0/angular.min.js:43:7 
at Object.d [as get] (https://code.angularjs.org/1.5.0/angular.min.js:40:270) 
at https://code.angularjs.org/1.5.0/angular.min.js:43:69 
at d (https://code.angularjs.org/1.5.0/angular.min.js:40:270) 
at e (https://code.angularjs.org/1.5.0/angular.min.js:41:1) 
at Object.instantiate (https://code.angularjs.org/1.5.0/angular.min.js:41:364) 
at https://code.angularjs.org/1.5.0/angular.min.js:87:42 
at A.link (https://code.angularjs.org/1.5.0/angular-route.min.js:7:274) <div ng-view="" class="ng-scope"> 

我index.html文件:

<!DOCTYPE html> 
<html> 
<head> 
<title>Appalachian App</title> 
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"> 
<link href="css/main.css" rel="stylesheet"> 
<script type="text/javascript" src="https://code.angularjs.org/1.5.0/angular.min.js"></script> 
<script type="text/javascript" src="https://code.angularjs.org/1.5.0/angular-route.min.js"></script> 
</head> 
<body ng-app="atApp"> 
<h1 class="header">Yo</h1> 
<div ng-view></div> 
<!-- Modules --> 
<script type="text/javascript" src="js/app.js"></script> 
<!-- Controllers --> 
<script type="text/javascript" src="js/controllers/WaypointController.js"> </script> 
<!-- Services --> 
<script type="text/javscript" src="js/services/waypoints.js"></script> 
</body> 
</html> 

我app.js文件:

var app = angular.module('atApp', ['ngRoute']); 
app.config(['$routeProvider', 
function($routeProvider) { 
    $routeProvider. 
     when('/', { 
      templateUrl: 'views/waypoint.html', 
      controller: 'WaypointController' 
     }). 
     otherwise({ 
      redirectTo: '/' 
     }); 
}]); 

我的控制器:

app.controller('WaypointController',[ 
'$scope','waypoints', 
function($scope, waypoints){ 
$scope.helloWorld='hello world!'; 
$scope.ways = waypoints; 
}]); 

我的服務:

app.factory('waypoints', [function(){ 
var demo = [ 
{ 
    name:"Milinockett", 
    date:"17 August 2015", 
    state:"Maine", 
    specificLocation:"motel", 
    startingPoint:true, 
    distanceFromStart:0, 
    distanceFromEnd:2189.0, 
    img:"https://56.media.tumblr.com/03645603932681733b6ae4b46d6c7abf/tumblr_o43w4sh5Zu1rrw1gjo1_540.jpg", 
    companions:"Vallone", 
    ​ 
}, 
{ 
    name:"Katahdin Stream Campground", 
    date:"18 August 2015", 
    state:"Maine", 
    specificLocation:"Baxter State Park Camp Site 21", 
    startingPoint:false, 
    distanceFromStart:5.2, 
    distanceFromEnd:2183.8, 
    img:"http://41.media.tumblr.com/1a0fd39fd0b14f83ce03151299c883f8/tumblr_o43w7109pQ1rrw1gjo1_1280.jpg", 
    companions:"Vallone", 

}, 
]; 
return demo; 
}]); 

任何幫助表示讚賞之前WaypointController.js

+0

您需要在控制器代碼的開頭添加'var app = angular.module('atApp');''。 –

+0

抱歉,我已經在app.js中做了我的應用程序聲明 – danielbarrett

+0

如果您將'console.log'放入工廠,那麼在應用程序初始化時它會顯示? – Tana

回答

2

首先第一件事情。當你想調試你的應用程序時,不要使用縮小版,而要使用標準版的Angular。這會給你一個更具描述性的錯誤,它會引導你找到問題的根源。

下面是一個工作示例:http://plnkr.co/edit/JANQwccTsyqPUTSYAZLv?p=preview。你的代碼(至少包括你所包含的部分)乍看起來很好看,所以我希望這會讓你知道你出錯的地方。

P.S.使用服務與工廠將可以給你一個更清晰的語法:

function WaypointsService() { 
    this.getWaypoints = getWaypoints; 

    function getWaypoints() { 
     return [way1, way2, ...]; 
    } 
} 
app.service('waypointsService', WaypointsService); 
+0

非常感謝! – danielbarrett

0

廣場waypoints.js文件已在控制檯上JSON任何錯誤。沒有什麼我在你的代碼中找到越野車。

+1

改變那裏的序列什麼都不會發生.. –

0

試試這個代碼,你的工廠:

app.factory('Waypoints', Waypoints); 

function Waypoints(){ 
    var demo = [ { ... }, { ... }, ]; 
    return{ 
     getDemo: getDemo 
    } 
    function getDemo(){ 
     return demo; 
    }; 

}); 

所以在你的控制器注入航點,並得到演示,如:

$scope.ways = Waypoints.getDemo(); 
相關問題