Изменить хеш для создания нескольких мобильных страниц jquery из одного HTML-файла - PullRequest
1 голос
/ 25 августа 2011

Я пишу приложение для телефонной связи.Я показываю страницу следующим образом: я создаю базовую структуру страницы из html-файла with $.mobile.loadPage и добавляю к ней динамический контент.Я делаю идентификатор страницы уникальным, а затем использую $.mobile.changePage($('#pageID'), чтобы показать его пользователю.

Итак, давайте предположим, что я создаю страницу с записями для списка «a», а затем также создаю страницу с записями для списка «b».Страницы имеют уникальные идентификаторы.Но если я редактирую запись из любого списка, когда я нажимаю кнопку «Назад», я вижу оба списка, потому что на оба они ссылаются как «records.html» в $.mobile.urlHistory.Я прочитал об атрибуте data-url и думаю, что можно установить его правильно, чтобы различать две сгенерированные страницы, но я не знаю, как.

Я уже думал о том, чтобы обрабатывать всю историю самчто само по себе не будет проблемой.Что мешает мне сделать это, так это то, что я не вижу хорошего способа переопределить поведение по умолчанию автоматически сгенерированной кнопки возврата.

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 26 августа 2011

Я нашел решение. Вы должны изменить атрибут data-url страницы. Вот как я это делаю сейчас, может быть, это кому-то поможет:

$.mobile.loadPage('entries.html', {reloadPage: true}).done(function() {

            //The id of the page is 'entries'. Otherwise the html only
            //contains empty divs for the header, content and footer.

            //Fill your page with content...

            //Absolute path to the html file you just loaded. You can get it from
            //window.location.pathname for example.
            var absPath = ...

           //Set data-url attribute
           $('#entries').attr('data-url',absPath +'&ui-page=entries1');

            //Enhance page with jquery-mobile styles
            $('#entries').trigger('create');

           //Make page unique
           $('#entries').attr('id', 'entries1');

           //Display the page.
           $.mobile.changePage($('#entries1'));

           });

Все, что связано с data-url, объясняется в jquery mobile docs . Это раздел о "автоматически сгенерированных страницах и URL-адресах подхешей"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...