【发布时间】:2017-02-17 20:49:37
【问题描述】:
我查看了许多教程和堆栈溢出页面,但没有一个解决方案适合我。基本上,在将数据传递给模板之前,我需要从 firebase 获取数据。这可能重要也可能不重要,但我在后端使用 nodejs 和 ejs。但问题在于 Angular 1
代码
angular.module("example", ["elif", "ngRoute"])
.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when("/leaders", {
templateUrl: "leaders",
controller: 'LeadersController',
resolve: {
data: function () {
return getLeadersData();
}
}
});
}])
.controller('LeadersController', ["$scope", "$http", "$location", "$window", 'data',
function($scope, $http, $location, $window, data)
{
$scope.data = data;
}]);
function getLeadersData()
{
// firebase does its thing and returns data fine here, it is an array of objects where each object has a few things in it
}
但是我已经使用不同的指南重做了大约 15 次或更多此代码,并且我一遍又一遍地遇到相同的错误。我得到的最常见的相同错误是
"Error: [$injector:unpr] Unknown provider: dataProvider <- data <- LeadersController
我现在不知道该怎么做。
编辑:添加 html,这个 html 是基本网页,删除了其他内容,确切的错误发生在这个
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/stylesheets/flickerFix.css">
<script src="/jquery/jquery.min.js"></script>
<script src="/bootstrap/js/bootstrap.min.js"></script>
<title>Leaders</title>
<link rel="stylesheet" type="text/css" href="/stylesheets/nav.css" />
<link rel="stylesheet" type="text/css" href="/stylesheets/leaders.css" />
<script src="https://www.gstatic.com/firebasejs/3.6.9/firebase.js"></script>
<!--<script src="/angular/angular.js"></script>-->
<script data-require="angular.js@1.3.x" data-semver="1.3.0" src="https://code.angularjs.org/1.3.0/angular.js" ></script>
<script data-require="angular-route@1.3.0" data-semver="1.3.0" src="https://code.angularjs.org/1.3.0/angular-route.js"></script>
<script src="/js/firebase/firebase.js"></script>
<!-- angular fire not used -->
<script src="/angularfire/angularfire.js"></script>
<script src="/elif/elif.js"></script>
<script src="/js/angular/LeadersController.js"></script>
</head>
<body ng-app="example">
<div class="container-fluid" id="wrapper" >
<p id="header">Leaders</p>
<div class="container" ng-controller="LeadersController" >
<h1>name: {{ leaders[0].name }}</h1>
<h1>name: {{ JSON.stringify(leaders)}}</h1>
</div>
</div>
</body>
</html>
【问题讨论】:
-
参考更新后的 Plunker (plnkr.co/edit/3SsQGRnRpryCHzYF5mKB?p=preview) 并确保您没有在 HTML 中使用 ng-controller。另外如何使用 ng-view 参考w3schools.com/angular/angular_routing.asp 了解详情
标签: javascript angularjs node.js firebase