我在尝试将角度缓存库加载到我的服务时遇到了麻烦。我使用bower为我的项目添加了角度缓存,并成功添加了它。当我在Chrome上调试服务代码时,我在“网络”标签中看到已加载角度缓存:
Name: angular-cache.js
Method: GET
Status: 200
Type: script
Initiator: require.js:1901
Size: 6,5 kb
Time: 16 ms
我有一个config.js文件,我加载了所有的库。此行用于角度缓存:
'angular-cache': '../bower_components/angular-cache/dist/angular-cache',
这是垫片里面的一行:
'angular-cache': ['angular'],
这就是服务:
define(
[ 'angular', 'services-module'],
function(angular, services) {
services.factory(
'MyService',
[
"$location",
"$interval",
"MyOtherService",
"CacheFactory",
function($location, $interval, otherService, cacheFactory) {
var service = {
myCachingFunction : function(parameters){
},
getCache : function(cacheId) {
}
}
return service;
} ]);
});
这是我得到的错误:
Error: [$injector:unpr] Unknown provider: CacheFactoryProvider
This是angular-cache的github页面。我错过了什么?
答案 0 :(得分:1)
你试过这个吗,我想这是你的service.js:
define(
['angular', 'services-module'],
function(angular, services) {
services.factory(
'MyService',
[
"$location",
"$interval",
"MyOtherService",
"CacheFactory",
function($location, $interval, otherService, cacheFactory) {
在你的app.js中:
define(
['angular', 'angular-cache'],
function(angular) {
var myApp = angular.module('myApp', [ 'ngResource', 'app.controllers', 'app.directives', 'app.services', 'app.filters', 'app.routes', 'app.interceptors', 'angular-cache' ]);
在config.js中:
shim: {
'angular-cache': {
deps: ['angular']
}
}
我猜你正在使用Require with Angular。
答案 1 :(得分:0)
你想要包含像这样的模块:
define(
[ 'angular', 'services-module', 'angular-cache'],
function(angular, services, cache) {
...