Я не могу создать объект datacontext для провайдера IndexedDb, используя инфраструктуру Jaydata 1.3.1, и получаю сообщение «Ошибка резервного копирования FailedProvider!» сообщение для $todo.context.onReady().
Каков синтаксис для определения поставщика данных для IndexedDB? Я нашел приведенный ниже код в документации Jaydata, но он не работает, потому что API «$ data.types.storageProviders» не отображает в нем класс «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>