Ответы пользователя по тегу JavaScript
  • Как в sailsjs выполнить запрос с параметром "$gte"?

    mr_T
    @mr_T
    Web-разработчик
    Оно? В Sails используется ORM Waterline, а ей вообще по барабану, какая конкретно БД используется.
    Ответ написан
    5 комментариев
  • Где водятся специалисты JavaScript?

    mr_T
    @mr_T
    Web-разработчик
    index0h: Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.

    Знать надо JavaScript, а в случае с Node.js нужно дополнительно иметь представление об архитектуре серверных приложений (хотя Node.js это не только сервер, а по сути возможность писать на JS вообще все что душе угодно) и о том, какие задачи можно решить модулями npm. Вернее даже не знать, а уметь гуглить и понимать английский.

    Но проблема в том, что на хорошем уровне JS знает со значительно большей вероятностью фронтендщик, чем бэкендщик. Отсюда проблема поиска: чтобы писать серверное приложение на Node.js - это либо фронтендщик начинает осваивать сервер, что, безусловно, похвально, но требует понимания многих вещей, с которыми человек ранее не сталкивался, либо бэкендщик начинает осваивать JavaScript, для которого, скорее всего, в новинку событийный подход и другие моменты из мира JavaScript который, как известно, во многом сильно отличается от классических языков с поддержкой ООП. Это я еще не упомянул тот факт, что Node.js появился сравнительно недавно, и специалистов по нему чисто физически не может быть очень много.

    Еще один момент. Программисты изучают то, что приносит деньги, то есть то, что более-менее востребовано. Компании, в свою очередь, стараются использовать технологии, для которых легко найти специалиста (привет, 1С-Битрикс). В итоге замкнуый круг, который потихоньку, конечно, разомкнется, но нужно время.

    Итого: дефицит специалистов, которые бы умели все, что необходимо. К тому же ты хочешь получить и фронт, и бэк в одном флаконе, что еще больше усложняет поиск.
    Ответ написан
    1 комментарий
  • Как удалить тег с определённым src?

    mr_T
    @mr_T
    Web-разработчик
    Удалить-то можно - делаешь querySelector('[src="main.js]') - только вот беда в том, что пока скрипт не загрузится, он не появится в DOM, а, следовательно, ты не сможешь его гарантировано удалить до выполнения.
    Ответ написан
    Комментировать
  • Как добавить аттрибут?

    mr_T
    @mr_T
    Web-разработчик
    В ангуляре нет конструкции условного задания атрибута как ng-class, так что либо писать что-то типа attr="{{condition ? trueValue : falseValue}}", либо, если необходимо обязательно именно наличие/отсутствие атрибута, воспользоваться ng-switch/ng-if. Привязаться именно к классу у tr тоже не получится напрямую, в данном случае нужно записать у tr конструкцию ng-class="{ 'some-class': condition }", а в td делать проверку по этому condition.
    Ответ написан
    Комментировать
  • Как добавить аттрибут?

    mr_T
    @mr_T
    Web-разработчик
    В ангуляре нет конструкции условного задания атрибута как ng-class, так что либо писать что-то типа attr="{{condition ? trueValue : falseValue}}", либо, если необходимо обязательно именно наличие/отсутствие атрибута, воспользоваться ng-switch/ng-if. Привязаться именно к классу у tr тоже не получится напрямую, в данном случае нужно записать у tr конструкцию ng-class="{ 'some-class': condition }", а в td делать проверку по этому condition.
    Ответ написан
    Комментировать
  • Как повесить обработчик события на изменения текста в div?

    mr_T
    @mr_T
    Web-разработчик
    var block = $('.help-block'), html = block.html(), updateInterval = 100;
    setInterval(function() {
        var newHtml = block.html();
        if (html != newHtml) {
           /* staff */
           html = newHtml;
        }
    }, updateInterval);

    По-другому никак, по крайней мере нет события, которое бы выполнялось при изменении контента.
    Ответ написан
    3 комментария
  • Будет ли грамотен такой подход в angularJS?

    mr_T
    @mr_T
    Web-разработчик
    Ну если уровень вложенности всегда один и небольшой, то почему бы и не использовать вложенные ng-repeat. В противном случае получается древовидная структура - тогда просто нужно сделать рекурсивное подключение шаблона в том же ng-repeat, что-то типа такого:
    <script type="text/ng-template" id="tree-tmpl">
    <ul>
        <li ng-repeat="item in list">
            {{item.name}}
            <div
                    ng-if="item.children && item.children.length"
                    ng-init="list=item.children"
                    ng-include="'tree-tmpl'"
            ></div>
        </li>
    </ul>
    </script>
    
    <div class="tree-list" ng-include="'tree-tmpl'"></div>
    Ответ написан
    Комментировать
  • Как предотвратить появление новых aside после каждого resize()?

    mr_T
    @mr_T
    Web-разработчик
    У тебя функция отрабатывает не только момент прохождения заданной ширины, а при каждом событии ресайза (то есть много-много-много раз). Например, если ты уменьшаешь мышкой окно браузера с ширины 1100 до 900, то у тебя и будет добавлен aside столько раз,сколько сработает событие.
    Ответ написан
  • Как де-минимизировать JS скрипт?

    mr_T
    @mr_T
    Web-разработчик
    В Aptana открываешь файл и нажимаешь CTRL+SHIFT+F (подозреваю, в любой другой IDE тоже, только с другим сочетанием клавиш). Ну, если тебе не нужно непосредственно в браузере смотреть скрипт, конечно.
    Ответ написан
    Комментировать
  • Где почитать про ООП на JavaScript?

    mr_T
    @mr_T
    Web-разработчик
    Для начала нужно понимать, что аббревиатура ООП в JavaScript имеет не ту интерпретацию, которую можно увидеть в классическом описании. Там есть и инкапсуляция, и полиморфизм, и наследование, но при этом не существует (О_о) классов.
    Отвечая на вопрос: статьи нужно искать в гугле по запросам JavaScript + наследование прототипов || замыкания || конструктор. А лучше взять книжку Флэнагана JavaScript: The Definitive Guide.
    Ответ написан
    7 комментариев
  • Изучения JavaScript с 0?

    mr_T
    @mr_T
    Web-разработчик
    Скорее всего ты столкнешься с той же бедой, что и я, а именно будешь воспринимать JS как очередной ОО язык после Java и C#. Отсюда будет много недопониманий того, как язык работает. А там на самом деле достаточно много коренных моментов, таких как замыкания и прототипное наследование.
    Лично я читал книгу Флэнагана JavaScript, The Definitive Guide - мне очень помогло. Думаю, и тебе поможет)
    Ответ написан
    Комментировать
  • Как на angular выделить все чекбоксы?

    mr_T
    @mr_T
    Web-разработчик
    Делаешь в scope функцию, которая проходится по всем привязанным в ng-model свойствам этих чекбоксов и устанавливает их значения в нужные (true по умолчанию или то, что у тебя в ng-true-value инпута).
    Ответ написан
    Комментировать
  • А какие плагины модальных окон используете вы?

    mr_T
    @mr_T
    Web-разработчик
    1) Не поддерживает из необходимого, пожалуй, только css-анимациию. Ну и обойдутся без нее, нехер на старых браузерах сидеть)
    2) CSS + media queries по необходимости.
    3) Что значит нестандартная?

    А так
    <a href="#modal1" class="show-modal">Открыть модальное окно</a>
    <div class="modal" id="modal1">бла-бла-бла</div>

    +
    $('.show-modal').click(function(e) { e.preventDefult(); $($(this).attr('href')).toggleClass('show'); } );

    +
    .modal {
        transition: ...;
        position: fixed;
        top: -9999px;
        left: -9999px;
        ...
    }
    .modal.show {
        top: 50%;
        left: 50%;
        ...
    }


    И для чего тут нужен плагин?
    Ответ написан
    8 комментариев
  • Как вырезать часть содержимого блока в другой блок?

    mr_T
    @mr_T
    Web-разработчик
    В приведенном коде функция find найдет тебе только непосредственно элемент с классом delimeter, а не те элементы, которые идут после него. Еще непонятно, зачем оборачивать в $ firstColumn, который уже является jquery-объектом. Нужно поправить код как-то так
    firstColumn.find('.delimiter').prev().nextAll().each( ... );

    А внутри each будет достаточно просто делать
    secondColumn.append($(this));
    ...так как здесь ты не копируешь элемент, а перемещаешь его в другой элемент.
    Ответ написан
    1 комментарий
  • Как анимировать только что созданный элемент в Angularjs без сторонних библиотек?

    mr_T
    @mr_T
    Web-разработчик
    Во-первых, нужно подключить в зависимости модуля приложения ngAnimate (не забыв сам скрипт подключить, само собой).
    Во-вторых, задать в css transition'ы для элементов, которые нужно анимировать.
    Дальше ангуляр сам поймет, что с этим делать, и если все правильно прописано в стилях, то, как говорится, все заработает само. Только нужно разобраться с классами, которые ангуляр подставляет для анимации (или настроить свои в config через $animateProvider).
    Подробнее тут и в гугле.
    Ответ написан
    7 комментариев