У меня есть следующий код:
$scope.clients = commonFactory.getData(clientFactory.getClients());
if ($scope.clients.length > 0) {
$scope.sampleForm.ClientId = $scope.clients[0].ClientId;
}
И функция getData в commonFactory:
factory.getData = function (method) {
method.then(function (response) {
return response.data;
}, function (error) {
$rootScope.alerts.push({ type: 'error', msg: error.data.ExceptionMessage });
});
};
Проблема заключается в том, что $scope.clients.length является undefined, когда он удаляет эту строку из-за асинхронного вызова.
Есть ли способ не выполнять проверку длины до тех пор, пока я не узнаю, что присвоено значение $scope.clients? Я посмотрел на что-то вроде этого:
$scope.clients = commonFactory.getData(clientFactory.getClients()).then(function () {
if ($scope.clients.length > 0) {
$scope.sampleForm.ClientId = $scope.clients[0].ClientId;
}
});
Попытка связать мой then
promises, но без кубиков... Цель здесь заключается в том, чтобы метод getData избегал кучи кода шаблона для улавливания ошибок... возможно, я собираюсь сделать это неправильно