Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以动态创建JayData实体/模型/上下文?_Javascript_Jquery_Jaydata - Fatal编程技术网

Javascript 是否可以动态创建JayData实体/模型/上下文?

Javascript 是否可以动态创建JayData实体/模型/上下文?,javascript,jquery,jaydata,Javascript,Jquery,Jaydata,是否可以动态创建JayData实体模型和上下文?然后使用它们 我进行一个Ajax调用,然后执行以下操作 function prepareEntityModel(json) { // var entity = { // Id: { type: "int", key:true }, // Name: { type: "string" }, // }); $data.Entity.extend("someData" + id, entity); } 然后

是否可以动态创建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()

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

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

希望这能有所帮助,请不要犹豫,在这里或我们的论坛上询问更多问题。当您遇到问题时,最好的方法是创建一个小JSFIDLE来演示问题。

当您声明类型时,您会得到类型定义,如

 var mytype = $data.Entity.extend("someData" + id, entity);
 var newInstance = new mytype();
声明上下文时,还将返回上下文定义,无需eval()

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

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

希望这能有所帮助,请不要犹豫,在这里或我们的论坛上提出更多问题。当你遇到问题时,最好的方法是创建一个小JSFIDLE来演示问题。

嘿,我喜欢“你就是男人!”这一点!我正在研究你的建议(最后逃出来吃午饭).你就是那个人!我只是想给出一个更专业的答案:)你能告诉我们你对动态模型有什么想法吗?我们允许用户定义他们的数据,因此它的结构,所以设备上的存储机制/结构必须是灵活的。嘿,我喜欢“你就是那个人!”这一点!我正在研究你的建议(终于逃出来吃午饭了)。你就是那个人!我刚搬走是为了给你一个更专业的回答:)你能告诉我们你对动态模型有什么想法吗?我们允许用户定义他们的数据,因此它的结构,所以设备上的存储机制/结构必须是灵活的。