我无法使用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>
答案 0 :(得分:0)
当您使用从本地文件系统引用的库以及jaydataproviders folder
旁边的jaydata.js
(及其中的提供程序)时,会发生这种情况。您将需要IndexedDbProvider.js
和InMemory。这些文件可以在已发布的软件包中找到。 Package of the latest release