【问题标题】:Breeze EntityManager.executeQuery() not returning promise (or data?) in AngularJSBreeze EntityManager.executeQuery() 没有在 AngularJS 中返回承诺(或数据?)
【发布时间】:2015-09-28 22:42:34
【问题描述】:

我正在尝试使用 Breeze 将数据从服务器获取到 AngularJS 应用程序中,尽管服务器正在发送 JSON 数据,但客户端应用程序没有得到它。我最接近使用调试器识别问题的是看到以下函数getRemoteEntities(),它是工厂的一部分,应该返回一个承诺,但当使用有效的 entityURL 调用时返回一个空的 Object {} 和json适配器:

[...]
var manager = entityManagerFactory.newManager();
[...]
return { 
    getRemoteEntities: function (entityUrl, jsonAdapter) {

        var query = breeze.EntityQuery
            .from(entityUrl)
            .using(jsonAdapter);

        return manager.executeQuery(query)
            .then(function (results) {
                return results;
            })
            .catch(function (error) {
                return $q.reject(error);
        });
    }
}

我已经检查过了,代码确实使用了 here 中描述的 Breeze Angular 服务。我不明白什么不起作用。

编辑:删除 .using(jsonAdapter) 意味着我能够获得并解决承诺,这表明它可能正在做一些搞砸的事情。这是一个例子(他们都遵循这个模式):

.value('jsonProfileResultsAdapter', new breeze.JsonResultsAdapter({

    name: "xyz", // mild obfuscation

    extractResults: function (data) {
        var results = data.results;
        if (!results) throw new Error("Unable to resolve 'results' property");
        return results;
    },

    visitNode: function (node, parseContext, nodeContext) {

        if (node) {
            if (node.person && node.assignments) {
                return {entityType: "EmployeeModel"}
            }
        }
    }
}))

【问题讨论】:

    标签: angularjs breeze


    【解决方案1】:

    jsonAdapter 在做什么?这是一个不寻常的功能(没有错,只是不寻常)。也许你在里面做了一些破坏承诺的事情。

    把它拿走,看看你会得到什么。如果你得到了一个承诺,甚至是一个失败的承诺,那么你就在做某事。

    【讨论】:

    • 好吧,jsonAdapter 的目的是服务器提供序列化为 JSON 的 Smalltalk 对象。看起来jsonAdapter 主要是附加entityType? (我没有写它们。)我尝试将jsonAdapter 排除在等式之外(例如,简单地var query = breeze.EntityQuery.from(entityUrl);),我现在得到(并且可能解决)一个承诺,但无法从经理那里获得实体(可能是因为jsonAdapter 已被删除)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多