我正在尝试构建一个小的AngularJS应用程序,以便在我使用restangular创建的页面上工作以消耗api,但我不断收到以下错误:
Error: [$injector:modulerr] Failed to instantiate module productConnectApp due to:
[$ injector:unpr]未知提供商:a http://errors.angularjs.org/1.5.5/ $注射器/ unpr?P0 =一个
错误似乎发生在lodash库中,我将其包含为restangular依赖于lodash。我已经使用凉亭安装了restangular。
我的页面包含:
<script src="../bower_components/angular/angular.js"></script>
<script src="../bower_components/lodash/lodash.js"></script>
<script src="../bower_components/restangular/dist/restangular.js"></script>
<script src="scripts/app.js"></script>
<script src="scripts/controllers.js"></script>
<script src="scripts/services.js"></script>
我正在尝试用来启用restangular
的app.js文件angular.module('productConnectApp', ['restangular'])
.config(function(RestangularProvider) {
RestangularProvider.setBaseUrl('http://localhost:3000/api/');
//RestangularProvider.setDefaultHttpFields({cache: true});
//RestangularProvider.setMethodOverriders(["put", "patch"]);
})
.controller('homeController', ['$scope', function($scope, Restangular) {
//alert('all good');
console.log('all goood');
var baseClients = Restangular.all('clients');
var baseProducts = Restangular.all('products');
baseClients.getList().then(
function(clients){
$scope.clients = clients;
},
function(){
console.log('error fetching clients');
});
baseProducts.getList().then(
function(products){
$scope.products = products;
}, function() {
console.log('error fetching products');
});
}]);
答案 0 :(得分:1)
.config(function(RestangularProvider) { ... })
使用implicit annotation,它与缩小版不兼容,应使用显式注释。
使用strict mode来避免意外的隐式注释。
.controller('homeController', ['$scope', function($scope, Restangular) { ... })
内联注释指定不正确,Restangular
无法注入。