我創建用CacheFactory的服務。我期待它是一個單身人士。我將它注入到控制器中,並且在控制器的範圍內正常工作。但是,一旦我去到不同的頁面,不同的範圍,我似乎沒有在我存儲在同一個控制器在不同的範圍內緩存的值。 CacheFactory的行爲不應該是一個單例,在我注入CacheService的任何地方都有相同的緩存對象?在angularjs中的CacheFactory是單例嗎?
這是我作爲一個例子服務:
angular.module('MyService', []).factory('CacheService', function($cacheFactory) {
return $cacheFactory('cacheService', {
capacity: 3 // optional - turns the cache into LRU cache
})
});
然後在我的控制器:
function MyController($scope, CacheService) {
var results= CacheService.get('storedvalue');
if(!results){
CacheService.put('storedvalue', results);
alert('results not stored');
}
else
alert('results stored');
}
感謝約什。你的例子工作。現在我看得更近了,我的也是。如果我刷新瀏覽器,它不起作用。現在我認爲這很有意義,因爲它在我刷新瀏覽器時再次引導angularjs。那麼在這種情況下,我認爲我不再有緩存中的值會同意嗎? – DavidB 2013-03-23 18:55:57
是的,狀態完全綁定到當前的頁面加載。 AngularJS(和所有客戶端的MVC框架),旨在在單頁的應用程序使用(儘管他們並不限於它們)。但是,如果需要,您可以使用本地存儲來堅持。你只需要自己編寫服務。 – 2013-03-23 19:10:13