Guest User

Untitled

a guest
May 23rd, 2015
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $$=Dom7;
  2.  
  3. Template7.registerHelper('json_stringify', function (context) {
  4.     return JSON.stringify(context);
  5. });
  6.  
  7. //Функция для нахождения индекса элемента. Если элемента в данном массиве нет - возвращает -1
  8. function find(array, value) {
  9.     for (var i = 0; i < array.length; i++) {
  10.         if (array[i] == value) return i;
  11.     }
  12.  
  13.     return -1;
  14. }
  15.  
  16. //Проверяет, есть ли данный элемент в данном массиве
  17. function isElementExists(item,array){
  18.     return find(array, item) != -1;
  19. }
  20.  
  21.  
  22. //Функция, которая вызывается по нажатию на кнопку
  23. //Ей всегда передаются одни и те же параметры, а это: 'Google' и 'http://google.com'
  24. function addHistoryItem(thisTitle,thisLink){
  25.     //Если история пуста, то привязывает к ключу historyArray новый массив
  26.     //Оно различает когда что-то по ключу есть и когда нет. С этим всё в порядке
  27.     if (JSON.parse(localStorage.getItem('historyArray'))==null){
  28.         console.log("История-то пуста");
  29.         localStorage.setItem('historyArray',JSON.stringify([
  30.             {
  31.                 title: thisTitle,
  32.                 link: thisLink,
  33.                 active: true
  34.             }
  35.         ]));
  36.     //Если по ключу что-то есть, то это ни что иное как массив
  37.     } else {
  38.     //Объявляется временный массив, чтобы с ним оперировать и не парсить каждый раз
  39.     //содержимое локалСтореджа по ключу
  40.         var temporaryHistoryArray = JSON.parse(localStorage.getItem('historyArray'));
  41.  
  42.     //Если элемент, который мы хотим добавить не существует в массиве,
  43.         if (!isElementExists({
  44.                 title: thisTitle,
  45.                 link: thisLink,
  46.                 active: true
  47.             },temporaryHistoryArray)) {
  48.         //То вызовется это. Здесь и проблема, даже если этот элемент в массиве есть
  49.         //и не один, прога этого не различает. И всегда вызывает этот код снизу
  50.    
  51.         //Если в истории больше 10 элементов, то нужно удалить последний. Как бы последние 10 элементов истории
  52.             if (temporaryHistoryArray.length>10){
  53.                 temporaryHistoryArray.pop();
  54.             }
  55.        
  56.         //Элемент добавляется в начало массива
  57.             temporaryHistoryArray.unshift({
  58.                 title: thisTitle,
  59.                 link: thisLink,
  60.                 active: true
  61.             });
  62.  
  63.         //Массив в локалСторедже заменяется временным массивом
  64.             localStorage.setItem('historyArray', JSON.stringify(temporaryHistoryArray));
  65.         }
  66.     }
  67.     //Страничка перезагружается, чтобы на странице с историей шаблон прогнался заново и были видны изменения в истории
  68.     window.location.reload();
  69. }
  70.  
  71.  
  72. var myApp = new Framework7({
  73.     animateNavBackIcon: true,
  74.     reloadPages: true,
  75.  
  76.     // Enable templates auto precompilation
  77.     //precompileTemplates: true,
  78.  
  79.     // Enabled pages rendering using Template7
  80.     template7Pages: true,
  81.  
  82.     // Specify Template7 data for pages
  83.     template7Data: {
  84.    
  85.  
  86.     //При запуске приложения история поиска вытаскивается из локал стореджа. Работает.
  87.     //Если в локал сторедже по ключу пусто - добавляет другой элемент, по которому прога поймет,
  88.     //Что нужно вывести, что история пуста. Тоже работает.
  89.         searchHistory: (localStorage.getItem('historyArray') != null) ? JSON.parse(localStorage.getItem('historyArray')) : [
  90.             {
  91.                 //Если active=false, то выведет "История пуста"
  92.                 active: false
  93.             }
  94.         ]
  95.     }
  96. });
  97.  
  98.  
  99. // Export selectors engine
  100. var $$ = Dom7;
  101.  
  102. // Add main View
  103. var mainView = myApp.addView('.view-main', {
  104.     // Enable dynamic Navbar
  105.     dynamicNavbar: true
  106. });
Advertisement
Add Comment
Please, Sign In to add comment