• Зачем $destroy у angularJS?

    miraage
    @miraage
    Старый прогер
    Пример 1

    Представим директиву для bootstrap tooltip.
    В link-функции мы пишем elem.tooltip({ /* opts */);

    Скажем, у нас есть таблица с 10 строками - tr, через ngRepeat.
    Нажали на кнопку в одном из td, открылся tooltip. Пока он висит, строка исчезает по какому-то условию, допусти filter. БИНГО! tooltip останется. Чтобы убрать его, в link-функции директивы надо написать примерно такой код:

    scope.$on('$destroy', function() {
      elem.tooltip('destroy');
    }


    Пример 2

    Коммуникация контроллеров. Порой не всегда удобно использовать фабрики/сервисы для этого. Если не вызвать функцию-дерегистратор - обработчик события останется в $rootScope навсегда и будет вызываться.

    function FooCtrl($rootScope) {
      this.someMethod = function() {
        // some code ...
        if (someCondition) {
          $rootScope.$emit('someEvent');
        }
      }
    }
    
    function BarCtrl($scope, $rootScope) {
      var deregFn = $rootScope.$on('someEvent', function() {
        // some code ..
      };
    
      $scope.$on('$destroy', function() {
        deregFn();
      });
    }
    Ответ написан
    Комментировать
  • Зачем люди просят забивать личные сообщения Вконтакте?

    Nexen2
    @Nexen2
    Web backend Yii2/Symfony Coder
    Представьте себе задачу - написать сеть ботов, имитирующих виртуальных людей с набором связей с друг другом, включая родственные и рабочие, общающиеся с дург другом, меняющие аватарки, статусы, пишущие иногда всякую мудрую пургу, цитирующих популярные паблики. Потом раз и выкладывающих ссылку на рекламируемый сайт. 2 недели прошло, еще ссылка.

    Вы не поверите, но строительство такой сети эдак на 20к ботов стоит порядочных денег. И есть тьма "уважаемых" предприятий, готовых платить за такую раскрутку ссылками. Эта задача была одной из причин (но не единственная) почему я уволился. Меня бесят пишущие мне боты, и я не собирался делать сеть из новых двадцати тысяч. Спрашиваете зачем вас просят что-то им написать или подружится с ними? Если это незнакомая вам личность, на 1/2 шанс что это бот, и ему нужно переписываться с реальным человеком, чтобы его не забанили.
    Ответ написан
    Комментировать
  • Почему не работает preventDefault на submit?

    onqu
    @onqu
    weasy
    #cartForm - должен быть id формы. И, желательно, проверить консоль на наличие ошибок.

    <form id="cartForm" method="post">
        <input type="text" />
        <input type="submit" />
    </form>


    // Событие на id формы
    $("#cartForm").on('submit', function (e) {   
        e.preventDefault();
        
        // Сохраняем сслыку на форму
        var form = this;
        
        $.ajax({
            url: 'some url'
        }).done(function(data) {
            // Ajax выполнен, отправляем форму
            form.submit();
        });
    });
    Ответ написан
    3 комментария