【问题标题】:Basic data storage with JayDataJayData 的基本数据存储
【发布时间】:2013-03-13 14:52:24
【问题描述】:

我尝试实现我的第一个基于 JayData 的应用程序。我需要我的 HTML5/JavaScript 应用程序在客户端存储复杂的数据(主要是一对多关系)。

我的模型看起来像这样(对不起,如果名称不是很明确):

我尝试用 JayData 翻译,如果我错了,请纠正我:

$data.Entity.extend("Test", {
    Id: { type: "int", key: true, computed: true },
    Name: { type: "string", required: true, maxLength: 200 },
    Chapters: { type: Array, elementType: "Chapter", inverseProperty: "Test" }
});

$data.Entity.extend("Chapter", {
    Id: { type: "int", key: true, computed: true },
    Name: { type: String, required: true, maxLength: 200 },
    Test: {type: "Test", inverseProperty: "Chapters" },
    Checks: { type: Array, elementType: "Check", inverseProperty: "Chapter" }
});

$data.Entity.extend("Check", {
    Id: { type: "int", key: true, computed: true },
    Name: { type: String, required: true, maxLength: 200 },
    Status: { type: "int", required: true },
    Chapter: { type: Chapter, inverseProperty: "Checks" }
});

$data.EntityContext.extend("CheckDb", {
    Tests: { type: $data.EntitySet, elementType: Test },
    Chapters: { type: $data.EntitySet, elementType: Chapter },
    Checks: { type: $data.EntitySet, elementType: Check }
});

编辑

如何填满所有表格?首先,我尝试过:

var myDB = new CheckDb({ 
    name: 'local', databaseName: 'CheckDatabase'
});

myDB.onReady(function() {
    myDB.Tests.add({
        Name: "Test 1"
    });
    myDB.saveChanges();
});

但是,如果我想将ChaptersChecks 添加到我的Test 怎么办?

谢谢

【问题讨论】:

    标签: javascript html web jaydata


    【解决方案1】:

    好的,我终于自己找到了:

    myDB.onReady(function() {
        var check = new Check({Name: "Check 1", Status: 1});
        var chapter = new Chapter({Name: "Chapter 1"});
        chapter.Checks = new Array();
        chapter.Checks.push(check);
    
        var myTest = myDB.Tests.add({
            Name: "Test 1",
            Chapters: [chapter]
        });
        myDB.saveChanges();
    });
    

    没那么难:)

    【讨论】:

      【解决方案2】:

      您的代码没问题。我用您的代码创建了一个 jsfiddle,它无需更改单个字符即可工作。 包括 jQuery 1.8+ 和 then http://include.jaydata.org/jaydata.js

      【讨论】:

      • 是的,我重新阅读了我的问题,但它并没有反映我想问的内容:) 我刚刚更新了它。如何填满所有表格?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      相关资源
      最近更新 更多