我对jaydata有一个基本问题。我的代码:
jQuery(document).ready(function(){
$data.Entity.extend("Todo", {
Id: { type: "int", key: true, computed: true },
Task: { type: String, required: true, maxLength: 200 },
DueDate: { type: Date },
Completed: { type: Boolean }
});
$data.EntityContext.extend("TodoDatabase", {
Todos: { type: $data.EntitySet, elementType: Todo }
});
var todoDB = new TodoDatabase({
provider: 'indexedDb', databaseName: 'MyTodoDatabase'
});
todoDB.onReady(function() {
//Work with todoDB now
});
});
我得到一个错误,因为行中的变量 Todo :
Todos:{type:$ data.EntitySet,elementType: Todo }
未定义。例如,当我用字符串替换 Todo 时 TodoDatabase 排成一行:
var todoDB = new TodoDatabase ({
provider: 'indexedDb', databaseName: 'MyTodoDatabase'
});
未定义/没有构造函数。所以我不明白 “Todo”和Todo的差异,也不是“TodoDatabase”和“TodoDatabase”之间的差异 TodoDatabase。请帮助我不知道如何正确使用这个系统。
谢谢
答案 0 :(得分:0)
JayData 1.4.x +版本经过优化,可以使用更少的全局对象。有两个选项可以使示例使用这些新的JayData版本:
选项1:使用变量定义您的实体:
var Todo = $data.Entity.extend("Todo", {
Id: { type: "int", key: true, computed: true },
Task: { type: String, required: true, maxLength: 200 },
DueDate: { type: Date },
Completed: { type: Boolean }
});

选项2:使用兼容性脚本 您可以使用this script通过全局变量
来使用实体定义