AngularJS - Breeze - EF EntityQuery 问题
AngularJS - Breeze - EF EntityQuery Issues
我先说我是整个 Angular / Breeze 世界的新手。我在 Pluralsight 上看过 John Papa 的视频,所以我对一切应该如何工作有了一些了解。我正在使用 John Papa 的 HotTowel Angular Breeze SPA 模板。即使在观看了他的视频并进行了一些额外的研究之后,我也一直在用头撞墙,试图弄清楚为什么我无法从 Breeze / EF 中将任何数据返回到我的视图中。我对现有数据库进行了 "reverse engineer code first" 操作以获取代码优先文件。我能够取回元数据。我可以在浏览器中提取我试图绑定到我的视图的实体的数据,这样看起来 web api 部分工作正常。我不习惯调试 Angular 应用程序,但我在 Chrome 上的开发者工具 window 中没有看到任何错误。我确信这是非常简单的事情,但我没有看到它。任何帮助都是极好的。代码如下。如果我需要 post 更多请告诉我。
谢谢,
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;
});
}
}})();
View -(我使用的是 Controller As 语法。Controller 是 "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}]
我想通了。我的模型 类 有一些问题,并且一些数据命名从我的数据上下文 js 文件传回。
我先说我是整个 Angular / Breeze 世界的新手。我在 Pluralsight 上看过 John Papa 的视频,所以我对一切应该如何工作有了一些了解。我正在使用 John Papa 的 HotTowel Angular Breeze SPA 模板。即使在观看了他的视频并进行了一些额外的研究之后,我也一直在用头撞墙,试图弄清楚为什么我无法从 Breeze / EF 中将任何数据返回到我的视图中。我对现有数据库进行了 "reverse engineer code first" 操作以获取代码优先文件。我能够取回元数据。我可以在浏览器中提取我试图绑定到我的视图的实体的数据,这样看起来 web api 部分工作正常。我不习惯调试 Angular 应用程序,但我在 Chrome 上的开发者工具 window 中没有看到任何错误。我确信这是非常简单的事情,但我没有看到它。任何帮助都是极好的。代码如下。如果我需要 post 更多请告诉我。
谢谢,
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;
});
}
}})();
View -(我使用的是 Controller As 语法。Controller 是 "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}]
我想通了。我的模型 类 有一些问题,并且一些数据命名从我的数据上下文 js 文件传回。