Как создать контекст базы данных / соединение с JayData

#javascript #backbone.js #jaydata

#javascript #backbone.js #jaydata

Вопрос:

Я использую JaydData с Backbone JS. На начальной странице приложения я использую контекст JayData как:

 $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 }
});

$todo.context = new $todo.Types.ToDoContext({ name: provider, databaseName: 'todo' });
$todo.context.onReady({
    success: updateView,
    error: function () {
    $todo.context = null;
    updateView();
}
  

На этой странице $todo.context доступно для выполнения операций с базой данных.
Но когда я перехожу на какую-то другую страницу приложения, $todo.context он недоступен.
Как я могу получить $todo.context на всех страницах основного приложения?

Спасибо.

Комментарии:

1. вы на самом деле переходите с начальной страницы на новую страницу? или это обрабатывается внутри как одностраничное приложение

2. @Quince Я использую магистральные маршруты для навигации. Так что в основном это одностраничное приложение. Но проблема в том, что когда я открываю приложение во второй раз, как мне получить контекст в этот момент.

Ответ №1:

Вы должны иметь возможность повторно использовать код, который вы предоставили на других страницах. Если вы хотите сохранить его на нескольких страницах, вы можете рассмотреть возможность прикрепления его к переменной сеанса. Удачи в ваших начинаниях!

Комментарии:

1. Лучше предоставьте подробный ответ с примером кода.

Ответ №2:

Попробуйте написать новый JS-файл с ‘$.todo.context’ и загрузить его как модуль, используя require js, таким образом, вы можете определить эту зависимость на каждой странице.

Посмотрите, как использовать RequireJS.

http://requirejs.org/docs/start.html

У меня в блоге есть сообщение на эту тему, к сожалению, оно доступно только на португальском языке. попробуйте использовать Google для перевода.

http://www.rcarvalhojs.com/backbone/2014/06/03/comecando-require-backbone.html

Надеюсь, это поможет!

Комментарии:

1. Это странно, попробуйте прикрепить его в контексте глобального окна.