无法使用JayData Framework 1.3.1为IndexedDB提供程序创建datacontext对象

时间:2013-08-22 01:35:11

标签: jaydata

我无法使用Jaydata framework 1.3.1为IndexedDb提供程序创建datacontext对象,并且“FailedProvider fallback failed!” $ todo.context.onReady()的消息。

为IndexedDB定义dataprovider的语法是什么?我在Jaydata文档中找到了下面的代码,但它不起作用,因为“$ data.types.storageProviders”API没有显示“indexedDb”类。

$ news.context = new $ news.Types.NewsContext({name:“indexedDb”,databaseName:“NewsReader”,dbCreation:$ data.types.storageProviders.indexedDb.DbCreationType.DropStoreIfOlderVersion,version:1});

<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="Scripts/jaydata.js" type="text/javascript"></script>

<script type="text/javascript">

    $(function () {

        $data.Entity.extend('$todo.Types.ToDoEntry', {
            Id: { type: 'int', key: true, computed: true },
            Value: { type: 'string' },
            CreatedAt: { type: 'datetime' },
            ModifiedAt: { type: 'datetime' },
            Done: { type: 'bool' }
        });

        $data.EntityContext.extend('$todo.Types.ToDoContext', {
            TodoEntries: { type: $data.EntitySet, elementType: $todo.Types.ToDoEntry }
        });

        $('#Button1').click(function (e) {
            var provider = "indexedDb";
            var options = { name: provider, databaseName: 'todo'};
            loadContext(options);

            return false;
        });

        $('#btnAdd').click(function () {
            var value = 'ravi';
            if (!value) return;
            var now = new Date();
            var entity = new $todo.Types.ToDoEntry({ Value: value, CreatedAt: now, ModifiedAt: now });

            try {
                $todo.context.TodoEntries.add(entity);
            }
            catch (Error) {

                alert(Error.Message);
            }
            $todo.context.saveChanges(updateView);
        });

        return false;
    });

    function loadContext(options) {

        $todo.context = new $todo.Types.ToDoContext(options);

        try {
            $todo.context.onReady({
                success: function () {
                    alert("Sucessfully");
                },
                error: function (error) {
                    alert("Failed" + error);
                    $todo.context = null;

                },
                notify: function (e) {

                    var result = e.value;

                    alert('Notify');
                }
            });
        }
        catch (Error) {
            alert(Error.Message);
        }
    }

</script>

1 个答案:

答案 0 :(得分:0)

当您使用从本地文件系统引用的库以及jaydataproviders folder旁边的jaydata.js(及其中的提供程序)时,会发生这种情况。您将需要IndexedDbProvider.js和InMemory。这些文件可以在已发布的软件包中找到。 Package of the latest release