Angularjs 使用工厂创建多个缓存对象
我有一个工厂包装Angular的Angularjs 使用工厂创建多个缓存对象,angularjs,Angularjs,我有一个工厂包装Angular的$cacheFactory。控制器使用工厂创建两个独立的缓存,但是我得到以下错误:cacheManager不是一个函数。这个代码怎么了 HTML 这是实现该技巧的代码,工厂需要返回一个函数,以允许控制器执行新的操作。此外,需要使用prototype关键字定义方法: var app = angular.module('app',[]); app.controller('myCtl', function ($scope,cacheManager) { va
$cacheFactory
。控制器使用工厂创建两个独立的缓存,但是我得到以下错误:cacheManager不是一个函数
。这个代码怎么了
HTML
这是实现该技巧的代码,工厂需要返回一个函数,以允许控制器执行新的操作。此外,需要使用
prototype
关键字定义方法:
var app = angular.module('app',[]);
app.controller('myCtl', function ($scope,cacheManager) {
var cache1 = new cacheManager();
var cache2 = new cacheManager();
cache1.create("cache1");
cache2.create("cache2");
cache1.add("key1", "value1");
cache2.add("key2", "value2");
alert(cache1.get("key1"));
})
.factory('cacheManager',function($cacheFactory){
var factory = function() { };
factory.cache = null;
factory.prototype.create = function(cacheId){
cache = $cacheFactory(cacheId);
return cache;
};
factory.prototype.add = function(key,value){
if (!cache)
return;
cache.put(key, value);
}
factory.prototype.get = function(key){
if (!cache)
return;
return cache.get(key);
}
return factory;
});
cacheManager是一个对象,而不是一个函数()
我认为不应该创建cacheManager的多个实例,而应该创建多个缓存对象,并向不同的缓存对象添加多个键/值
var cache1 = cacheManager.create("cache1");
var cache2 = cacheManager.create("cache2");
缓存1.添加(“键1”、“值1”);
缓存2.添加(“键2”、“值2”) 我认为这就是您要寻找的:您可以在cache1和cache2上添加多个键/值。像cache1.add('key11','11');cache1.添加('key22','22');cache1.添加('key33','33');
var app = angular.module('app',[]);
app.controller('myCtl', function ($scope,cacheManager) {
var cache1 = new cacheManager();
var cache2 = new cacheManager();
cache1.create("cache1");
cache2.create("cache2");
cache1.add("key1", "value1");
cache2.add("key2", "value2");
alert(cache1.get("key1"));
})
.factory('cacheManager',function($cacheFactory){
var factory = function() { };
factory.cache = null;
factory.prototype.create = function(cacheId){
cache = $cacheFactory(cacheId);
return cache;
};
factory.prototype.add = function(key,value){
if (!cache)
return;
cache.put(key, value);
}
factory.prototype.get = function(key){
if (!cache)
return;
return cache.get(key);
}
return factory;
});
cacheManager.create("cache1");
cacheManager.create("cache2");
cacheManager.add("key1", "value1");
cacheManager.add("key2", "value2");
var cache1 = cacheManager.create("cache1");
var cache2 = cacheManager.create("cache2");