Я настроенный механизм для определения классов в JavaScript, как показано ниже:Какова наилучшая практика использования пользовательских объектов в jayData?
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 очень хорош, но пока я хочу использовать свои собственные сущности, что я могу сделать? где это для начала? Есть ли какой-нибудь образец, если хотите, я могу наследовать свой класс Entity из класса $ data.Entity. С наилучшими пожеланиями. –
если у меня есть var temp = new Todo (someData), как я могу получить имя ключа (это Id)? –