Аз съм сравнително нов за Angularjs, така че моля те носете с мен.
Имам два контролера, единият от които има Restangular повикване за зареждане на определен json обект. Как да осъществя достъп до същия обект в друг контролер, без да правя друго поредно повикване?
Аз вече се опитах да направя factory
който споделя обекта, но това далеч не работи.
app.factory("Data", function() {
return []
}
app.controller("FirstCtrl", function ($scope, AudioRestangular, Data) {
$scope.audios_full = Data
// load data into $scope.audios_full using restangular
}
app.controller("SecondCtrl", function ($scope, AudioRestangular, Data) {
/*
* $scope.second_ctrl_audios = ?
* get data from FirstCtrl"s audios_full
* and store it in this $scope.second_ctrl_audios
*/
}
Отговори:
1 за отговор № 1Можете да свалите персонализираната услуга / фабричния маршрут, за да създадете ефективно своя собствен слой кеширане, както предлагате, или можете да активирате кеширането в Restangular. от https://github.com/mgonto/restangular#can-i-cache-requests
RestangularProvider.setDefaultHttpFields({cache: true});
Вероятно можете да поставите това в "изтичане" на обаждането на приложението, както е така:
app.run(function(RestangularProvider) {
RestangularProvider.setDefaultHttpFields({cache: true});
});