gpt4 book ai didi

javascript - 在 jayData 中使用自定义实体的最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-28 01:39:07 27 4
gpt4 key购买 nike

我有一个自定义机制来在 JavaScript 中定义类,如下所示:

Tools.User = Tools.Class.define("Tools.User", Tools.Entity, {
Id: { type: "int", key: true, computed: true },
IsActive: { type: Boolean },
IsAdmin: { type: Boolean },
LName: { type: String },
FName: { type: String },
FullName: { get: function () { return this.FName + " " + this.LName; }, Type: String },
init: function (name, lname) {
this.IsAdmin = false;
this.IsActive = true;
this.FName = name;
this.LName = lname;
Tools.Entity.call(this, arguments);
},
onEndEdit: function () {

if (this.IsActive == false && this.IsAdmin == true) {
throw new Error(Messages.AdminCanNotBeDisabled);
}

this.parentClass.onEndEdit();

},
deActivate: function () {

if (this.IsAdmin == true) {
throw new Error(Messages.AdminCanNotBeDisabled);
}

this.IsActive = false;
}
});

如您所见,它支持虚拟/覆盖、自动实现的属性、构造函数等。

我想在 JayData 中使用我自己的类。为此,我开发了以下几行代码:

$data.EntityContext.extend("Tools.AppDb", {
Users: { type: $data.EntitySet, elementType: Tools.User }
});

var appDb = new Tools.AppDb({
provider: 'indexedDb', databaseName: 'AppDb'
});

appDb.onReady(function () {

});

很明显,以这种方式与 Jaydata 合作是不可能的。但如何才能以最少的代码更改来实现这一目标呢?

我认为这个错误消息没有用,但这是一条错误消息:

Uncaught TypeError: Cannot call method 'getPublicMappedProperties' of undefined 

最佳答案

JayData 可以对 JayData 实体进行操作,以跟踪更改并使独立于存储的数据管理成为可能。

因此,Users EntitySet 的 elementType 应该派生自 $data.Entity:

$data.Entity.extend("Todo", {
Id: { type: "int", key: true, computed: true },
Task: { type: String, required: true, maxLength: 200 },
DueDate: { type: Date },
Completed: { type: Boolean }
});

关于javascript - 在 jayData 中使用自定义实体的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com