我查看了許多教程和堆棧溢出頁面,但沒有一個解決方案適用於我。基本上,我需要在將數據傳遞給模板之前從Firebase獲取數據。這可能也可能不重要,但我在後端使用nodejs和ejs。但問題是與角1無法讓Angularjs在呈現模板之前等待數據
代碼
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,這個網站是基本的網頁,與其他的東西刪除了,確切的錯誤與此
<!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="[email protected]" data-semver="1.3.0" src="https://code.angularjs.org/1.3.0/angular.js" ></script>
<script data-require="[email protected]" 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>
類似於發出http://stackoverflow.com/questions/30107574/angularjs-injectorunpr-unknown-provider-dataprovider-data-pagectrl – MechanicalCoder
請參閱更新Plunker(https://plnkr.co/編輯/ 3SsQGRnRpryCHzYF5mKB?p =預覽),並確保你的HTML中沒有使用ng-controller。另外,如何使用ng-view參考https://www.w3schools.com/angular/angular_routing.asp瞭解詳情 – MechanicalCoder