Раньше angular поддерживал возможность загружать данные напрямую из Promise. По логичным соображениям (не очевидное присваивание) эту возможность убрали.
Теперь нужно писать так
getdata(1).then(function(data)
{
$scope.data = data;
});
Но, мне сейчас крайне важно иногда не выходить из потока, поэтому getdata может вернуть массив напрямую без Promise, а может вернуть Promise.
Для этого использую вспомогательную функцию
Упрощенно так:
Интерфейс
loadData($scope, name, getter, params);
//и вызов
loadData($scope, 'data',getdata, [1]);
Она проверяет возвратила ли функция Promise или данные и соответственно присваивает значение в $scope сразу, либо через then.
Внимание, вопрос! У кого есть какие идеи в этом направлении, может есть более красивые решения?