使用Breeze脱机数据时出现未定义的问题不是函数

Trouble using Breeze offline data getting undefined is not a function

本文关键字:问题 函数 未定义 脱机 Breeze 数据 使用      更新时间:2023-09-26

我在轻松使用脱机数据时遇到了问题,大多数函数在联机时都能正常工作。

然后,当我调用这个函数时,函数中出现了一个未定义的错误不是函数

    $scope.getPagedDataAsync = function (pageSize, page, searchText) {
    var skip = (page - 1) * pageSize;
    var take = pageSize * 1;
    app.dataservice.getCustomerPage(skip, take, searchText)
        .then(customersQuerySucceeded);
};

这是修改后的getCustomerPage函数,用于离线

 function getCustomerPage(skip, take, searchText) {
    var importData = window.localStorage.getItem(stashAll);
         manager2.importEntities(importData);
    var query = breeze.EntityQuery
        .from("Customers")
        .orderBy("CompanyName")
        .skip(skip).take(take)
        .inlineCount(true);
    if (searchText) {
        query = query.where("CompanyName", "contains", searchText);
    }
return manager2.executeQueryLocally(query);
}

下面是我如何为离线使用声明manager2的

var manager2 = new breeze.EntityManager();

这里有一个customerQuerySuccessed函数,我认为会出现错误,我在联机处理样本时工作得很好。

function customersQuerySucceeded(data) {
    $scope.offlinecustomers = data.results;
    if (data.inlineCount) {
        $scope.totalServerItems = data.inlineCount;
    }
    $scope.$apply();
    app.logger.info("Fetched " + data.results.length + " Offline Customers ");
}

以下是我最初是如何离线获取数据的。

manager = new breeze.EntityManager(serviceName);
var query=breeze.EntityQuery
.from("Customers");
manager.executeQuery(query);
var exportData = manager.exportEntities();
window.localStorage.setItem(stashAll, exportData);

原来executeQuery Locally返回一个数据,而executeQuery则返回一个promise,

错误是因为我引用了promise上的属性。

我想我必须重写我的代码来说明。。。