gpt4 book ai didi

javascript - 是否可以动态创建数据实体/模型/上下文?

转载 作者:行者123 更新时间:2023-11-28 02:18:29 25 4
gpt4 key购买 nike

是否可以动态创建 JayData 实体模型和上下文?然后使用它们?

我进行 Ajax 调用,然后执行以下操作

function prepareEntityModel(json)
{
// var entity = {
// Id: { type: "int", key:true },
// Name: { type: "string" },
// });

$data.Entity.extend("someData" + id, entity);
}

然后我尝试创建一个上下文。令我惊讶的是,这似乎有效: var t= "someData"+ 81

function createContext(t)
{
$data.EntityContext.extend(t + "Context", {
t: { type: $data.EntitySet, elementType: t },
});

var fn = eval(t + "Context");

var context = new fn({
name: "webSql",
databaseName: "aDB"
});

return context;
}

上下文甚至似乎响应了 onReady() 事件。但该表是使用名称“t”创建的。在这一点上我基本上已经诉诸猜测。在上下文内部,我无法通过 context["someData"+ id).addMany(data);

的常用路径访问我的数据

我使用 JayData 的时间还不到 24 小时,所以如果这对术语来说是无意义的,我深表歉意。

最佳答案

当你声明一个类型时,你会得到类型定义,就像

 var mytype = $data.Entity.extend("someData" + id, entity);
var newInstance = new mytype();

当你声明上下文时,你也会得到上下文定义,不需要 eval()

var contexttype = $data.EntityContext.extend(t + "Context", {...
var context = new contexttype({...

可以使用“tableName”参数指定表名称(更容易),也可以通过为实体集指定一个好名称(更难),例如:

var contextDef = {};
contextDef[t] = { type: $data.EntitySet, elementType: t };
var fn = $data.EntityContext.extend(t + "Context", contextDef);

希望这对您有所帮助,请随时在此处或我们的论坛中提出更多问题。当你遇到问题时,最好的方法是创建一个小的 jsfiddle 来演示问题。

关于javascript - 是否可以动态创建数据实体/模型/上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16036959/

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