【问题标题】:AngularJS - Breeze - EF EntityQuery IssuesAngularJS - Breeze - EF EntityQuery 问题
【发布时间】:2015-09-08 17:43:51
【问题描述】:

我会先说我是整个 Angular / Breeze 世界的新手。我在 Pluralsight 上观看了 John Papa 的视频,所以我对一切应该如何工作有了一些了解。我正在使用 John Papa 的 HotTowel Angular Breeze SPA 模板。即使在观看了他的视频并进行了一些额外的研究之后,我也一直在努力想弄清楚为什么我无法从 Breeze / EF 将任何数据返回到我的视图中。我对现有数据库进行了“逆向工程代码优先”以获取代码优先文件。我能够取回元数据。我可以在浏览器中提取我试图绑定到我的视图的实体的数据,这样看起来 web api 部分工作正常。我不习惯调试 Angular 应用程序,但在 Chrome 的开发人员工具窗口中没有看到任何错误。我确信这是非常简单的事情,但我没有看到它。任何帮助都是极好的。代码如下。如果我需要发布更多信息,请告诉我。

谢谢,

RG

DataContext.js

(function () {
'use strict';

var serviceId = 'datacontext';
angular.module('app').factory(serviceId, ['common', 'entityManagerFactory', 'model', datacontext]);

function datacontext(common, entityManagerFactory, model) {
    var $q = common.$q;
    var Predicate = breeze.Predicate;
    var EntityQuery = breeze.EntityQuery;
    var entityNames = model.entityNames;
    var getLogFn = common.logger.getLogFn;
    var log = getLogFn(serviceId);
    var logError = getLogFn(serviceId, 'error');
    var logSuccess = getLogFn(serviceId, 'success');
    var manager = entityManagerFactory.newManager();
    var brand = [];

    var service = {
        getBrands: getBrands
    };

    return service;

    function getBrands() {
        var orderBy = 'BrandID';
        return EntityQuery.from(entityNames.brand)
            .orderBy(orderBy)
            .using(manager).execute()
            .then(querySucceeded)
            .fail(_queryFailed);

        function querySucceeded(data) {
            brand = data.results[0];
            logSuccess('Retrieved [Brands] from remote data source', brand.length, true);
            return brand;
        }
    }

    function _queryFailed(error) {
        var msg = config.appErrorPrefix + 'Error retrieving data.' + error.message;
        logError(msg, error);
        throw error;
    }
}})();

控制器

(function () {
'use strict';
var controllerId = 'empLifeCycleHome';
angular.module('app').controller(controllerId, ['common', 'config', 'datacontext', empLifeCycleHome]);

function empLifeCycleHome(common, config, datacontext) {
    var getLogFn = common.logger.getLogFn;
    var log = getLogFn(controllerId);

    var vm = this;
    vm.title = 'Employee Life Cycle Home';
    vm.brand = [];

    activate();

    function activate() {
        common.activateController(getBrands(), controllerId)
            .then(function () { log('Activated Employee Life Cycle Home View'); });
    }

    function getBrands() {
        return datacontext.getBrands().then(function (data) {
            return vm.brand = data;
        });
    }
}})();

查看 - (我使用 Controller As 语法。控制器是“vm”。)

<section id="empLifeCycleHome" class="mainbar">
<section class="matter">
    <div class="container">
        <div class="row">
            <div class="widget wviolet">
                <div data-cc-widget-header title="{{vm.title}}"></div>
                <div>
                    <div data-ng-repeat="b in vm.brand">
                        <div>
                            <h5>{{b.brandName}}</h5>
                        </div>
                    </div>
                </div>
                <div class="widget-foot">
                    <div class="clearfix"></div>
                </div>
            </div>
        </div>
    </div>
</section>

导航到品牌操作时在浏览器中返回的数据...

[{"$id": "1",
"$type": "EmpSvcsDataModel.Brand, EmpSvcsDataModel",
"BrandID": 1,
"BrandName": "Maintenance USA",
"InsertDate": "2015-09-08T12:58:12.163",
"LastUpdateDate": null}]

【问题讨论】:

  • 当您在浏览器的开发者工具打开的情况下运行应用程序时,您是否看到正在发送的查询和返回的数据?您的querySucceeded 函数中brand 的值是多少?
  • 我只看到返回的元数据。我没有看到品牌数据的查询。
  • 我现在正在取回品牌数据,但它没有约束力。
  • 我想通了。我的模型类有一些问题,并且从我的 datacontext js 文件传回了一些数据命名。

标签: angularjs entity-framework-6 breeze


【解决方案1】:

我想通了。我的模型类有一些问题,并且从我的 datacontext js 文件传回了一些数据命名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多