使用 Breeze 离线数据时出现问题,获取未定义的数据不是函数

Trouble using Breeze offline data getting undefined is not a function

我在 breeze 中使用离线数据时遇到问题,在线时大多数功能都可以正常工作。

然后一个错误undefined is not a function出现在我猜想调用这个函数的函数中

    $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();

这是我认为出现错误的 customersQuerySucceeded 函数,我在在线样本上工作正常。

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);

原来 executeQueryLocally returns 一个数据,而 executeQuery returns 一个承诺,

错误是因为我指的是承诺中的属性。

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