我无法使angular.resource.js与angular.js一起使用。 Angular已加载,但似乎angular.resource不是。
的index.html
<!doctype html>
<html>
<head>
<script>
var require = {
shim: {
angular: {
exports: "angular"
},
"angular.resource": {
deps: [ "angular" ]
}
}
};
</script>
<script src="require.js"></script>
</head>
<body>
<div ng-controller="TagsController">
Example
</div>
<script>
require( ["TagsInit"] );
</script>
</body>
</html>
TagsInit.js
define([
"angular",
"angular.resource",
], function( angular ) {
var module = angular.module( "app.customer", [] );
module.controller( "TagsController", function( $scope, tagsService ) {
console.log( "TagsController executed" );
});
module.service( "tagsService", function( $resource ) {
console.log( "TagsService executed" );
});
angular.bootstrap( document.body, [ "app.customer" ] );
});
我认为它与垫片配置有关,但我没有意识到:
shim: {
angular: {
exports: "angular"
},
"angular.resource": {
deps: [ "angular" ]
}
}
使用AngularJS v1.3.0-beta.2和angular.resource(相同版本)。
我明白了:
Error: [$injector:unpr] Unknown provider: $resourceProvider <- $resource <- tagsService
http://errors.angularjs.org/1.3.0-beta.2/$injector/unpr?p0=%24resourceProvider%20%3C-%20%24resource%20%3C-%20tagsService
答案 0 :(得分:1)
您应该在ngResource
参数中添加app.customer
模块作为requires
模块的依赖项:http://docs.angularjs.org/api/ng/function/angular.module
var module = angular.module( "app.customer", ["ngResource"] );
答案 1 :(得分:0)
当然你必须传递'ngResource'作为角度模块的依赖!
var module = angular.module(“app.customer”,['ngResource']);
AMD不会破坏AngularJS的依赖系统。
恕我直言,使用带有AngularJS的requirejs是一个坏主意...因为你使用它的好处很少。只有脚本订单插入,而不是模块化,因为Angular采用自己的系统来管理模块。
希望它有所帮助。