Вам действительно нужна функция getCategories? Если это единственное место, которое он вызвал, вы можете просто удалить и оставить вызов службы напрямую.
В противном случае ваш код будет таким же коротким, как и для использования обещаний, я думаю, если вы используете v1.2. До 1.2 угловые имели автоматическое обезвреживание. То есть, вместо того, чтобы
//$scope.getCategories = function() {
ItemService.getCategories().success(function(categories) {
$scope.categories = categories;
});
//}
Вы могли бы сделать это вместо того, что кажется гораздо более изящным:
//$scope.getCategories = function() {
$scope.categories = ItemService.getCategories();
//}
Проблемы с этим в виду, что это недавно было удалено, хотя - https://github.com/angular/angular.js/issues/4158. Я думаю, что в будущем можно будет добавить альтернативу, если есть хороший способ сделать это.
Где сложная часть? –
Это не сложно, это просто код – Pixark
Зачем завершать вызов службы в функции области видимости? Не нужно, если ваш интерфейс не запускает его через какое-либо событие. Кроме того, если вы хотите загружать категории при инициализации контроллера, вы должны посмотреть, как это сделать в функции разрешения маршрута или если вы не используете маршрут, а затем в функции запуска приложения. –