#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. Это странно, попробуйте прикрепить его в контексте глобального окна.