Я пытаюсь получить данные с сервера, используя breeze js. При выполнении кода в приведенном ниже фрагменте контроллера он попадает на сервер и возвращает клиенту правильные данные (проверено в инструментах Chrome Network). Однако если вы проанализируете data.results в обработчике обещаний, модель в результатах будет выглядеть как новая версия сущности со всеми значениями по умолчанию для полей (нули, ноль и т. Д.). В консоли не отображаются ошибки.
Это происходит только в том случае, если вы переходите непосредственно на эту страницу. Если вы перейдете на главную страницу сайта, перейдите на эту страницу, все работает правильно. Похоже, что при загрузке сайта возникает какое-то состояние гонки, но я не совсем уверен, где искать.
Есть идеи?
//From tnDataContext
function getFromAllTasks(criteria, orderBy, take, skip) {
var predicates = getPredicatesFromTaskCriteria(criteria);
if (!orderBy)
orderBy = 'taskStatus.taskInboxSortOrder, taskPriority.priorityLevel, endDueDate DESC';
var predicate = breeze.Predicate.and(predicates);
var query = breeze.EntityQuery.from('Tasks')
.where(predicate)
.expand('parentTask, taskNotes')
.orderBy(orderBy)
.inlineCount()
.take(take)
.skip(skip);
$rootScope.appProcesses++;
return em.executeQuery(query).finally(function () {
$rootScope.appProcesses--;
});
}
//From Angular Page Controller
return tnDataContext.getFromAllTasks(criteria, sortOrder, take, skip)
.then(function (data) {
if (data.results.length > 0) {
tasks = data.results;
$scope.task = tnDataContext.getEntity('Task', id);
$scope.childTasks = tasks.filter(function (t) {
return t.taskId != id;
});
determineCanUseActions($scope.task.taskType.taskTypeEntityTypes[0]);
}
});