• Как решить ошибку Invalid update: invalid number of items in section 0 в collectionView на iOS12?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Ответ был дан на SO.

    Where are the batch updates (plural)?

    You don't need performBatchUpdates, the method is only useful for multiple simultaneous updates. Delete the card in the database, on success remove the card from the data source array and delete the item – animated – in the collection view.

    My suggestion assumes that the current index path is available which itemIndex derives from
    item = self.cards[itemIndex]
    
    self.db.collection(K.FStore.collectionName!).document((item?.idCard)!).delete() { err in
       if let error = err {
          print("An error occurred", error)
       } else {
          self.cards.remove(at: itemIndex)
          self.collectionView.deleteItems(at: [indexPath])
       }
    }




    Ссылка на SO: тут ответ

    Конечно, не весь ответ помог, но именно из-за неверного метода у меня выходила ошибка.
    Ответ написан
    Комментировать
  • Почему cancelButton в searchBar не успевает переименоваться?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Все было оказывается на столько просто ...
    Для того чтобы поменять название на кнопке и не трогать потоки во ViewDidLoad()
    searchBar.setValue("Отменить", forKey: "cancelButtonText")

    cancelButtonText - отвечает за это кнопку.
    А дальше уже в методе делегата просто показывает саму кнопку, как и было у меня:
    searchBar.setShowsCancelButton(true, animated: true)
    searchBar.showsCancelButton = true


    По поводу проблемы:
    Я поставил смену названия, которое было в самом вопросе в другой поток
    DispatchQueue.main.async{ // тут менял название}, а уже ниже делал показ кнопки - проблему почти решило, но UI не видел размеры кнопки с первого раза.
    Если кто-то сможет объяснить данные момент - будет ответ на вопрос. Т.к. вопрос именно в этом, а не о том, как переименовать кнопку! Буду очень благодарен за объяснение!
    Ответ написан
    Комментировать
  • Как правильно сделать рекурсию при большой вложенности из объектов?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Вот рабочая функция, которая перебирает объекты и правильно их складывает в один массив:
    let a = []
    getProp(this.n)
       function getProp(data) {
         let obj = {}
           _.forEach(data, (val, key) => {
              if (_.isObject(val)) {
                 getProp(val);
              } else {
                  a.push({"title": key, "value": val})
            }
          })
        }
    Ответ написан
    Комментировать
  • В чем может быть проблема неправильного отображения?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    1.5 часа за сафари помогли решить проблему. Дело в том, что сафари не очень хорошо отображает 100vh. После смены на 100% контейнеру, который держит эти блоки - все встало на свои места, например, как у хрома.
    Спасибо всем, за уделенное время вопросу!
    Ответ написан
    Комментировать
  • Где я допускаю ошибку в запросе API Unsplash?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Вот как выглядит правильный запрос.
    $.getJSON('https://api.unsplash.com/photos/random?collections=228275&orientation=landscape&count=1&client_id={my key}, function(data){
            console.log(data);
        });
    Ответ написан
    Комментировать
  • Как мне передать компонент или почему у меня такая ошибка?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Ошибка была в том, что я передавал ngModule не в том файле, не там где сам этот компонент передается..
    Ответ написан
    Комментировать
  • Что указать в manifest'е, чтобы после загрузки расширения сразу открывало новую вкладку?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Нашел:
    chrome.runtime.onInstalled.addListener(function (object) {
        chrome.tabs.create({url: "chrome://newtab"})
    });


    Или , например, другую страницу

    chrome.runtime.onInstalled.addListener(function (object) {
        chrome.tabs.create({url: "http://yoursite.com/"}, function (tab) {
            console.log("New tab launched with http://yoursite.com/");
        });
    });


    Не забудьте указать в манифесте:
    "background": {
          "scripts": ["background.js"],
          "persistent": false
      }
    Ответ написан
    Комментировать
  • Как заставить работать стили?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Как я понял, у меня либо жесткое наложение, либо просто не видно куда и что тыкается. (не работает другими словами) После разбора всех атрибутов, я дошел до того что 1 кружок ставится НЕ зависимо куда ты тыкнешь. Тут уже было понятно, что это :after вешается по id (как мы и писали) и только на первый элемент. Поэтому решение нашел стремное, а именно я динамически передаю новые id, на каждую итерацию цикла. Т.е. 4 id из state, после уже в стили делаю такие как и были :after+label и тд. Нужный функционал то я получил, но весь дерьмо код - вижу. Если у вас будут лучшее решение, чем мое - с радостью узнаю и попробую!

    Зачем вообще мне нужен был state? Дело в том, что именно вот эти цифры ( цена) отправляется к нам в базу, и по клику динамически (там еще есть ниже верстка) перемещаем туда тоже. Т.е. можно было без state, но писать доп.кода нет смысла, да и ошибки будут 100%.
    Ответ написан
    Комментировать
  • Почему пропала полоса прокрутки(собран на nuxt)?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Пришлось удалить с хостинга всю папку dist, оставить только php файл хостинга и заного перезалить файлы. Также было удаление .htaccess , так что сохраните свою информацию! Я не понимаю, как это может быть связанно, но это помогло мне.
    Ответ написан
    Комментировать
  • Где ошибка при анимации появления во vue.js?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Чтобы решить данную проблему, нужно добавить к appear, вот так:
    <transition name="bird_modal" appear>

    Потому что: у меня идет начальная отрисовка и я внимательнее глянул доки, то увидел бы " If you also want to apply a transition on the initial render of a node, you can add the attribute"
    Ответ написан
    Комментировать
  • Можно ли через .set() создавать новые документы автоматически?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Я потратил на поиски этого ответа почти 3 часа, а ответ был во-первых в документации ( которую я прочел с закрытыми глазами похоже), во-вторых перед носом.
    Чтобы создавались рандомные документы, нужно просто при запросе оставлять поле .doc() ПУСТЫМ, вот и всё. Firebase сам создаст id ему и припишет данные. И больше ничего не нужно делать...

    const docRef = dbUD.collection("data").doc().set({})
    Ответ написан
    Комментировать
  • На ios 12.1 и ниже поддерживается input checkbox = checked (nuxt.js), что делать?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Ошибка была в обработчике метода.
    На input checkbox стоял метод @click = 'тото'
    И система ios 12.1 и ниже, не отрисовывала галочку. Было предположено, что ошибка именно через метод проходит и был изменен метод с @click="тото" на @change="тото" , после этого все стало работать!
    Ответ написан
    Комментировать
  • Помочь понять как сделать проверку, когда уже есть проверка?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Спасибо Артем Будин за указ на ошибку, по привычке как в CSS прописал и zendor за возню со мной и разжовывание инфы. Понял что лучше вешать на form , так как если на кнопку все равно будет отправляться пустая форма, но можно сделать .submit и все будет ок.
    Поэтому сделал на форму, через submit и с preventDefault() для запрета отправки формы.

    Готовое решение:
    $(document).ready(function() {
    $("#email").blur(function() { 
            if ($(this).val() != "") {
            var pattern = /^(?!.*@.*@.*$)(?!.*@.*\-\-.*\..*$)(?!.*@.*\-\..*$)(?!.*@.*\-$)(.*@.+(\..{1,11})?)$/;
      
            if ($(this).val() != "" && pattern.test($(this).val())) {
                
                $(this).tooltip('disable');
                $(this).removeClass("error_message");
                $(this).attr('title', '');
                $(this).attr('data-original-title', '');
              } else {
                $(this).tooltip('enable');
                $(this).attr('title', '');
                $(this).addClass("error_message");
                $(this).attr('data-original-title', 'ошибочка');
            }
          }
                if($(this).val() == "") {
                   $(this).tooltip("destroy");
                }   
        });
      });
    
    $(document).ready(function(){
      $('#dub').submit(function (event) {
          if($('#email').hasClass('error_message') || $('#email') == "") { 
            event.preventDefault();
          } 
       });
    });
    
    $(document).ready(function() {
    $('#email').on('focus', function() {
    $(this).removeClass('error_message');
      });
    });
    
    $( "#email" ).keyup(function() {
      if($(this).val() === "") {
          $(this).tooltip("destroy");
    }
    });


    Еще раз спасибо! Понял и запомнил :)
    Ответ написан
    Комментировать
  • Фокус при повторном клике на input, как убрать то что уже было вызвано функцией?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Благодаря DanKud получил то, что нужно, ну и спасибо за помощь еще wagoodoogoo
    Нужно было просто вещать событие .on(focus), а wago же подсказал то, как убрать уже когда верно введено все! Спасибо , рябят!
    1)
    $('.input_form').on('focus', function() {
    /* либо если вешать на клик:
    $('.input_form').on('click', function() { */
        $(this).removeClass('error');
        $('#test').hide();
    });

    2)
    if (pattern.test($(this).val())) {
            $(this).removeClass("error");
            $("#test").fadeOut(600).css({ display: "none" }).text("");
          }
    Ответ написан
    Комментировать
  • В чем может быть проблема не работы 2х одинаковых блоков?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Спасибо за наводку Дмитрий совсем что-то вылетило из головы перекрытие.
    В любом случае вот исправленый код:
    <div class="notifications-social-icq-do">
                      <p class="notifications-social-icq-do-p p1">1. Скопируйте команду авторизации</p>
                        <div class="notifications-social-icq-do-icon_1">
                          <button><i class="material-icons">content_copy</i></button>
                        </div>
                      <p class="notifications-social-icq-do-p">2. Перейдите в чат и отправьте команду боту</p>
                        <div class="notifications-social-icq-do-icon_2">
                          <button><i class="material-icons">content_copy</i></button>
                        </div>


    .notifications-social-skype-do-p {
        margin-top: 23px;
        width: 190px;
        height: 30px;
        display: flex;
        font-size: 14px;
        color: #2C2C2C;
    }
    
    .notifications-social-skype-do i {
        color: #BBBEC9;
    }
    
    .notifications-social-skype-do i:hover {
        color: #687189;
    }
    
    .notifications-social-skype-do button {
        border: none;
        background: #f4f4f6;
    }
    
    .notifications-social-skype-do-icon_1 {
        position: absolute;
        padding-left: 200px;
        margin-top: 25px;
    }
    
    .notifications-social-skype-do-icon_2 {
        padding-left: 200px;
        padding-bottom: 150px;
    }
    Ответ написан
    Комментировать
  • Сайт с задачами по JS, поможете найти?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Сайт нашел!
    Вот ссылка: www.codeabbey.com
    Ответ написан
    Комментировать
  • В чем может быть проблема?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    В строчке кода sliderImages.forEach(slideImage => { .. был пропущен символ.
    Также последовал совету Alex и изменил. Теперь все ок! Спасибо всем!
    Ответ написан
    Комментировать
  • Почему сначала грузить всю страницу, а после только prelouder?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Решение: перейти на svg и поместить стили в head. Спасибо за помощь Dymok
    Ответ написан
    Комментировать
  • Почему ошибка cannton GET?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Благодаря RAX7 решили проблему.
    1) Не правильно указанная baseDir: "./homework_16.12",

    следует вот так : baseDir: "./"

    2) А также подправить вот тут:
    gulp.watch("homework 16.12/**.html").on('change', bs.reload);

    на gulp.watch("/*.html").on('change', bs.reload);

    3) Ну и чтобы не было обязательным вписыванием /index.html - нужно просто убрать directory: true

    Еще раз спасибо за помощь RAX7
    Ответ написан