角js未知提供商
我试图“定制”mongolab示例以适合我自己的REST API。 现在我遇到了这个错误,我不知道我在做什么错误:
Error: Unknown provider: ProductProvider <- Product
at Error (unknown source)
at http://localhost:3000/js/vendor/angular.min.js:28:395
at Object.c [as get] (http://localhost:3000/js/vendor/angular.min.js:26:180)
at http://localhost:3000/js/vendor/angular.min.js:28:476
at c (http://localhost:3000/js/vendor/angular.min.js:26:180)
at d (http://localhost:3000/js/vendor/angular.min.js:26:314)
这是我的控制器:
function ProductListCtrl($scope, Product) {
$scope.products = Product.query();
}
这是模块:
angular.module('productServices', ['ngResource']).
factory('Product', ['$resource', function($resource){
var Product = $resource('/api/products/:id', { }, {
update: { method: 'PUT' }
});
return Product;
}]);
你的代码看起来不错,实际上它可以工作(除了调用本身之外),当它被复制并粘贴到示例jsFiddle中时:http://jsfiddle.net/VGaWD/
很难说没有看到更完整的例子会发生什么,但我希望上面的jsFiddle会有所帮助。 我怀疑的是你没有使用'productServices'模块初始化你的应用程序 。 它会给出同样的错误,我们可以在另一个jsFiddle中看到这个:http://jsfiddle.net/a69nX/1/
如果你打算使用AngularJS和MongoLab, 我会建议使用现有的适配器作为$ resource和MongoLab :https://github.com/pkozlowski-opensource/angularjs-mongolab它减轻了使用MongoLab的很多痛苦,你可以在这里看到它的行动:http://jsfiddle.net/pkozlowski_opensource/DP4Rh/免责声明! 我维护这个适配器(基于AngularJS示例编写),所以我明显偏向这里。
我得到了这个错误,因为我传递了一个不正确的参数给工厂定义。 我有:
myModule.factory('myService', function($scope, $http)...
它在我删除了$scope
并将工厂定义更改为:
myModule.factory('myService', function( $http)...
如果您需要注入$scope
,请使用:
myModule.factory('myService', function($rootScope, $http)...
我只是有一个类似的问题。 这个错误在问题中说的是相同的,试图用pkozlowski.opensource和Ben G的答案来解决它,这两个答案都是正确的和很好的答案。
我的问题确实与以下相同的错误不同:
在我的HTML代码中,我有这样的初始化...
<html ng-app>
更进一步,我试图做这样的事情:
<div id="cartView" ng-app="myApp" ng-controller="CartCtrl">
我摆脱了第一个...然后它的工作......显然你不能初始化ng-app两次或更多次。 很公平。
我总是忘记了第一个“ng-app”,并感到非常沮丧。 也许这会帮助别人...
链接地址: http://www.djcxy.com/p/2177.html