首页 > 解决方案 > 微风查询:网络显示数据已返回,但 javascript 结果包含一个空模型

问题描述

我正在尝试使用微风 js 从服务器检索数据。当下面的控制器片段中的代码运行时,它会访问服务器并将正确的数据返回给客户端(在 Chrome 网络工具中验证)。但是,如果您在 Promise 处理程序中分析 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]);
                }
            });

标签: breeze

解决方案


推荐阅读