Можно ли добавить значения в мой $resource $cacheFactory с моего контроллера и синхронизировать эти данные между несколькими контроллерами? По сути, я пытаюсь выполнить следующее:
1) получить ресурс JSON из API
2) манипулировать JSON так, как если бы он больше не был ресурсом $, а просто простым объектом JSON, который я могу использовать между контроллерами.
Есть ли «угловой способ» сделать это или я должен просто кэшировать весь список мест, используя локальное хранилище, и читать и записывать оттуда все остальное?
.factory('places', ['$resource','environment','$cacheFactory',
function($resource, environment, $cacheFactory) {
var cache = $cacheFactory('places');
return $resource(environment.apis.places, {}, {
query: {
isArray:true,
method: 'GET',
cache: cache
}
});
}
])
.controller('ItemCtrl', function($scope, places) {
places.query({}, function(result){
$scope.item = result[0]
})
$scope.makeFav = function(index){
//add a new key to cached places data
$scope.item.fav = true
}
}
.controller('ListCtrl', function($scope, places) {
places.query({}, function(result){
$scope.item = result //should get the updated cache changed by ItemCtrl
})
console.log($scope.item[0].fav) //should = true
}