使用Breeze脱机数据获取未定义的麻烦不是一个功能

时间:2015-03-22 04:48:18

标签: javascript angularjs breeze offlineapps

使用微风使用离线数据时遇到问题,大多数功能在线时都能正常工作。

然后在调用此函数的函数中出现错误 undefined不是函数

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

1 个答案:

答案 0 :(得分:0)

事实证明 executeQueryLocally 会返回数据,而 executeQuery 会返回一个承诺,

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

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