Услуга - это ваша модель, все вызовы на ваш сервер должны быть централизованы в сервисах.
Если я начать с вашего примера, вы должны иметь «EmployeeService» И в нем функцию так: (не забывайте вводить $^и $ HTTP услуг)
me = this;
me.cacheEmployee = null;
me.getEmployees = function(){
var deferred = $q.defer();
if(me.cacheEmployee != null){
deferred.resolve(me.cacheEmployee);
}else{
$http.get('urlToEmployee').success(function(result){
me.cacheEmployee = result;
deferred.resolve(me.cacheEmployee);
});
}
return deferred.promise;
};
me.forceLoadEmployee = function(){ // after each CreateUpdateDelete operations
var deferred = $q.defer();
$http.get('urlToEmployee').success(function(result){
me.cacheEmployee = result;
deferred.resolve(me.cacheEmployee);
});
return deferred.promise;
};
И в контроллер страницы, которую вы хотите отобразить ваши сотрудники (не забудьте придать EmployeeService)
EmployeeService.getEmployees().then(function(result){
$scope.employees = result;
});
используется асинхронный вызов, вы не можете думать в процедурный способ решить вашу проблему.
Основной документ об обещании: https://docs.angularjs.org/api/ng/service/ $ д
Я надеюсь, что мой ответ будет соответствовать вам.
Имейте славный день!
Редактировать: теперь у вас есть список сотрудников в кеше, вызов будет запущен на сервер только в первый раз.
Вы собираетесь время от времени получать сотрудников, или это просто одноразовая работа? \ –
@ TechMa9iac Сейчас один раз. Только один человек может одновременно получить доступ к приложению и CRUD (нет необходимости синхронизировать). Возможно, мне придется продлить его для поддержки нескольких людей в будущем (в зависимости от управления). Кроме того, мне может потребоваться ограничить (в будущем) количество данных, загружаемых на клиентскую сторону. Поэтому мне может потребоваться загрузить больше записей, во время навигации по страницам и поиска по подстроке. – zehelvion