Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $$=Dom7;
- Template7.registerHelper('json_stringify', function (context) {
- return JSON.stringify(context);
- });
- //Функция для нахождения индекса элемента. Если элемента в данном массиве нет - возвращает -1
- function find(array, value) {
- for (var i = 0; i < array.length; i++) {
- if (array[i] == value) return i;
- }
- return -1;
- }
- //Проверяет, есть ли данный элемент в данном массиве
- function isElementExists(item,array){
- return find(array, item) != -1;
- }
- //Функция, которая вызывается по нажатию на кнопку
- //Ей всегда передаются одни и те же параметры, а это: 'Google' и 'http://google.com'
- function addHistoryItem(thisTitle,thisLink){
- //Если история пуста, то привязывает к ключу historyArray новый массив
- //Оно различает когда что-то по ключу есть и когда нет. С этим всё в порядке
- if (JSON.parse(localStorage.getItem('historyArray'))==null){
- console.log("История-то пуста");
- localStorage.setItem('historyArray',JSON.stringify([
- {
- title: thisTitle,
- link: thisLink,
- active: true
- }
- ]));
- //Если по ключу что-то есть, то это ни что иное как массив
- } else {
- //Объявляется временный массив, чтобы с ним оперировать и не парсить каждый раз
- //содержимое локалСтореджа по ключу
- var temporaryHistoryArray = JSON.parse(localStorage.getItem('historyArray'));
- //Если элемент, который мы хотим добавить не существует в массиве,
- if (!isElementExists({
- title: thisTitle,
- link: thisLink,
- active: true
- },temporaryHistoryArray)) {
- //То вызовется это. Здесь и проблема, даже если этот элемент в массиве есть
- //и не один, прога этого не различает. И всегда вызывает этот код снизу
- //Если в истории больше 10 элементов, то нужно удалить последний. Как бы последние 10 элементов истории
- if (temporaryHistoryArray.length>10){
- temporaryHistoryArray.pop();
- }
- //Элемент добавляется в начало массива
- temporaryHistoryArray.unshift({
- title: thisTitle,
- link: thisLink,
- active: true
- });
- //Массив в локалСторедже заменяется временным массивом
- localStorage.setItem('historyArray', JSON.stringify(temporaryHistoryArray));
- }
- }
- //Страничка перезагружается, чтобы на странице с историей шаблон прогнался заново и были видны изменения в истории
- window.location.reload();
- }
- var myApp = new Framework7({
- animateNavBackIcon: true,
- reloadPages: true,
- // Enable templates auto precompilation
- //precompileTemplates: true,
- // Enabled pages rendering using Template7
- template7Pages: true,
- // Specify Template7 data for pages
- template7Data: {
- //При запуске приложения история поиска вытаскивается из локал стореджа. Работает.
- //Если в локал сторедже по ключу пусто - добавляет другой элемент, по которому прога поймет,
- //Что нужно вывести, что история пуста. Тоже работает.
- searchHistory: (localStorage.getItem('historyArray') != null) ? JSON.parse(localStorage.getItem('historyArray')) : [
- {
- //Если active=false, то выведет "История пуста"
- active: false
- }
- ]
- }
- });
- // Export selectors engine
- var $$ = Dom7;
- // Add main View
- var mainView = myApp.addView('.view-main', {
- // Enable dynamic Navbar
- dynamicNavbar: true
- });
Advertisement
Add Comment
Please, Sign In to add comment