微风OData的错误 [英] Breeze OData error

查看:159
本文介绍了微风OData的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试了一段时间,现在使用的微风和OData的。

I've been trying for some time now to use breeze and OData.

我的OData来自另一个服务器,CORS已启用。我相信问题是微风和ODATA因为我已经测试使用的微风和Web API的一切和它的工作就好了。

My OData comes from another server, and CORS is enabled. I believe the problem is with breeze and odata because I've tested everything using breeze and web api and it worked just fine.

在网络选项卡中的铬我看到的OData正常,但由于某种原因,数据提取不显示,我得到这个奇怪的错误:

In chrome in network tab I see that OData is fetched properly but for some reason data isn't shown and I get this strange error:

[Q] Unhandled rejection reasons (should be empty): 
[Error]
 q.js:891
Error: OK Logger.js:52


Here is my breeze DataService:

app.adminMuscleGroup.dataService = ( function(breeze, logger) {



    breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);

    var service = new breeze.DataService({
        serviceName: "http://localhost:23758/odata/",
        hasServerMetadata: false,

    });

    breeze.config.initializeAdapterInstance("dataService", "OData");


    var manager = new breeze.EntityManager({ dataService: service });

    manager.enableSaveQueuing(true);

    var dataService = {
        getAll: getAll,
    };

    return dataService;

    function getAll() {
        var query = breeze.EntityQuery.from("MuscleGroup").orderBy("Name");

        return manager.executeQuery(query);
    }

下面是Controller.js:

Here is Controller.js:

app.adminMuscleGroup.controller('AdminMuscleGroupCtrl', function ($scope) {

    var dataService = window.app.adminMuscleGroup.dataService;
    var logger = window.app.logger;

    $scope.items = [];

    $scope.getAllMuscleGroups = function() {
        dataService.getAll()
            .then(querySucceeded)
            .fail(queryFailed);
    };

    $scope.getAllMuscleGroups();

    function querySucceeded(data) {
        $scope.items = [];
        data.results.forEach(function(item) {
            $scope.items.push(item);
        });

        $scope.$apply();

        logger.info("Fetched all Muscle Groups");
    }

    function queryFailed(error) {
        logger.error(error.message, "Query failed");
    }

})

下面是控制台日志截图:

Here is screenshot of Console log:

推荐答案

我发现,微风不能正常使用的OData定期EntitySetControllers和CORS的时候,你可以在<一见工作href=\"http://stackoverflow.com/questions/17397733/breeze-executequery-q-promise-fails-cors\">question我在这里问,这让他们从工作控制器应定期ApiController装饰着BreezeControllerAttribute Breeze.WebApi 。它可能已经被更新工作,但我还没有在一段时间试了一下。

I found out that breeze doesn't work correctly when using regular EntitySetControllers for OData and CORS as you can see in the question I asked here, and that to get them to work the controller should be a regular ApiController decorated with the BreezeControllerAttribute from Breeze.WebApi. It might have already been updated to work but I haven't tried it in a while.

这篇关于微风OData的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆