Breeze registerEntityTypeCtor不工作
我正在做一个HotTower项目,我想格式化一些从数据库传递到Breeze的数据,但看起来ctor没有注册 我做错了什么 在Breeze registerEntityTypeCtor不工作,breeze,hottowel,Breeze,Hottowel,我正在做一个HotTower项目,我想格式化一些从数据库传递到Breeze的数据,但看起来ctor没有注册 我做错了什么 在datacontext.js中: var manager = configureManager(); function configureManager() { var mng = new breeze.EntityManager('breeze/data'); breeze.NamingConvention.camelCa
datacontext.js
中:
var manager = configureManager();
function configureManager() {
var mng = new breeze.EntityManager('breeze/data');
breeze.NamingConvention.camelCase.setAsDefault();
model.configureMetadataStore(mng.metadataStore);
return mng;
}
function configureMetadataStore(metadataStore) {
metadataStore.registerEntityTypeCtor
('UserInfo', null, userInfoInitializer);
}
function userInfoInitializer() {
if (this.Email == "")
this.Email = '---';
this.CreateDate = formatDateTime(this.CreateDate);
}
function formatDateTime(DateTime) {
return moment.utc(DateTime).format('DD. MM. YYYY. [у] hh:mm');
}
在model.js
中:
var manager = configureManager();
function configureManager() {
var mng = new breeze.EntityManager('breeze/data');
breeze.NamingConvention.camelCase.setAsDefault();
model.configureMetadataStore(mng.metadataStore);
return mng;
}
function configureMetadataStore(metadataStore) {
metadataStore.registerEntityTypeCtor
('UserInfo', null, userInfoInitializer);
}
function userInfoInitializer() {
if (this.Email == "")
this.Email = '---';
this.CreateDate = formatDateTime(this.CreateDate);
}
function formatDateTime(DateTime) {
return moment.utc(DateTime).format('DD. MM. YYYY. [у] hh:mm');
}
Datacontext引用模型,数据从数据库传输并显示在屏幕上,但未格式化
console.log()
没有出现来自userInfoInitializer()
的调用。当我构造实体时,我的构造函数需要有一个要构造的实体。我没有尝试过上面的代码,但我相信Breeze会传入一个实体,您需要为该实体提供属性。用这个。也许有用,但对我来说,这是最重要的
function userInfoInitializer(user) {
if (user.Email == "")
user.Email = "---";
第二,您的实体在模型中的名称是什么?是用户信息还是仅仅是用户信息?您可能已经知道这一点,但需要确保在添加构造函数时使用正确命名的实体
第三-如果您使用camelCase,则需要将属性的第一个字母保留为小写。前任。user.email和user.createDate
最后,我无法判断您是在构造函数中创建“createDate”,还是从模型中传递。如果它确实是您正在创建的属性,我建议将其设置为一个可忽略的可观察或计算属性。如果它来自数据库,那么您需要执行以下操作
if (!user.createDate) { } //set it
请记住,从数据库返回的所有实体都将被赋予该属性,因此,如果您的示例中有已具有createDate的实体,则您将覆盖该日期。如果您想将createDate设置为now,那么我会将其移动到您创建对象的方法中。不再使用
此
,它仍然不起作用。我忘了提到,UserInfo
不是数据库中的表,但是模型中有一个类UserInfo。我使用它在他的个人资料页面上显示用户信息,但由于明显的原因,我无法加载所有内容(如密码)。初始化器似乎未注册。是否正确地将分部映射回父对象?如果不是,您的初始值设定项将不会意识到UserInfo是一个用户。谢谢,这篇文章对我帮助很大。我最终使用了[JsonIgnore]
,因为密码永远不应该通过网络。