• Комбинированный if?

    @dmz9
    код пишется для других людей. они залазят туда и читают и пытаются его понять и улучшить.
    начиная городить "сокращения" где они совершенно ничего не выигрывают, как ты сам говоришь - ты только запутываешь код.
    когда нибудь этим "другим" человеком будешь и ты сам, вернувшись к своему забытому коду.
    подумай о будущем )))
  • Простой вопрос?

    @dmz9
    Андрей: если каждая в своем отдельном контексте то да
  • Простой вопрос?

    @dmz9
    Андрей: смысл в том чтобы не дать убежать функции ProductsMore в глобальный контекст а оставить её в "локальном" но в то же время доступном внутри document.ready
    тот кто так пишет - красавчик уапшэ
  • Как писать много кода, оставляя его простым, как в начале?

    @dmz9
    это относится не к "инструментальным" наборам, а к классам приложения.
    вполне нормально иметь класс utils который умеет делать запросы через аякс, перебирать циклом массивы и объекты и работать с дом (джиквери/лодаш/%любой-другой-подобный-фреймворк%).

    разбиение класса-"супергероя" на отдельные сущности помогает четче разделять обязаности, уменьшать размер контекста при разборе кода класса, увеличивает шанс на реюзабельность классов/отдельных методов, уменьшает "удивление" программиста.

    есть хорошая модель "слоёв" приложения - слой сервисов, слой бизнес-логики, слой данных и т.д.
    ну так вот, если класс имеет методы которые работают со всеми слоями - значит что то пошло не так.
    идеально это когда класс общается только с одним или двумя слоями (сверху-снизу).
    исключение составляют классы, построеные так что они должны являться чем то вроде посредников между другими классами, "клеем" связывающим всех прочих в одно приложение. но эти классы сами по себе не умеют ничего, кроме как быть "менеджером". это медиаторы, контроллеры, иногда шины событий, принимающие сигналы от разных частей приложения и отдающие распоряжения что делать дальше.

    тот же ангуляр - сама философия разбиения на сервисы, провайдеры и прочие страшные слова - как раз и помогает не создавать таких монстров, которые и в сеть лазить сами умеют, и юи рисовать, и бизнес логика в них лежит, и всё-превсё умеют в одном классе. поэтому концепция модульности очень популярна и построить приложение проще используя уже готовые модули каждый из которых работает в одном слое, а программист лишь описывает их связь в своём коде.
  • Почему filter не возвращает цифру 0?

    @dmz9
    нда, поправлю сам себя - не катит. нестрогое соответсвие будет отдавать false * 1 == 0, тру
  • Почему filter не возвращает цифру 0?

    @dmz9
    Евгений: return (value*1==value);
    не катит?
    что то совсем дань моде устроили, лишь бы менее-читаемый синтаксис выбрать и всё тут )
    я тоже есть на кодеварс, лол
  • Как не обновлять значение input'а при пользовательском вводе?

    @dmz9
    есть $watch в ангуляре, следит за изменениями.
    ставь флаг какой нибудь во время редактирования и запрети обновлять поле из других мест - ведь все точки в которых переменная может быть изменена должны быть на виду (по идее) и в них доступен на чтение флаг. флаг стоит - значит в переменную не пишем. как только фокус пропал с инпута - флаг разрешил изменения "извне"
  • Как сформировать список select с помощью Ajax запросив с БД MySQL?

    @dmz9
    а, вон что. ну тут просто логически неверно сделано на сервере.
    json - это один "объект", т.е. он начался с открывающей скобки и закончился закрывающей. больше после нее ничего нет.
    если 2 массива - это уже malformed, т.е. косячный json.
    сначала упакуй их в один объект а потом присылай.
    выходная точка - это всегда json_encode и делается он в самом конце. также не забывай что надо добавлять header (content-type json) - нагуглишь как там правильнее.
    т.е. у тебя
    взять массив, упаковать в json
    взять другой массив, упаковать в json
    склеить получившиеся части и отправить в выходной поток
    а должно быть
    взять массив, взять другой массив, сделать из них третий массив, упаковать его и отправить в выходной поток
    echo json_encode(
    array(
    'departmentList' =>$department,
    'personalList'=>$personal
    )
    );
  • Переход на главную страницу из дочерней?

    @dmz9
    определи на JS местоположение главная-или-нет.
    потом в обработчике клика просто пишешь
    if (!mainPage){
    document.location='/'+$(this).attr('href')
    }
    будет тоже самое
  • Как выполнить действии при обнаружении добавления нового элемента dom?

    @dmz9
    на картинке даже ссылка есть на песочницу jsfiddle - там и есть пример.
    $(".fancybox").fancybox({
    loop : false,
    afterLoad: function(current, previous) {

    }
    });
    в том месте где описывается настройка фансибокса добавляется еще один параметр по названию события. значением параметра должна быть функция - т.к. это обработчик. эта функция и есть колбек который будет вызываться при наступлении события.
    иногда плагины передают в колбеки какие то параметры. эти параметры можно брать и что то с ними делать внутри колбека. называть параметры можно как угодно в круглых скобках - именно с такими именами и будешь работать внутри колбека. если они не нужны - можно их не указывать. если их изначально небыло но указываешь сам - они будут "undefined" потому что плагин не знает что туда засунуть.
    чтобы отловить открытие надо взять событие и в качестве колбека либо указать название своей функции либо написать
    function() {
    вызов-какой-то-свой-функции();
    }
    аналогично на закрытии - обработчик отменяющий визуальное изменение
  • Ajax работает только через false как быть?

    @dmz9
    вот и везде так. в итоге получаем стадо недо-программистов которые только и умеют что "юзать либы из npm" а сами даже на чистом js ни строчки ни напишут. зачем, всё-ж написано за них.
    в судный день весь npm кончится, что делать то будем? ))) наверное те кто шарят в ванильке будут что то на подобие богов )))
    правильно делает что хочет разобраться, не надо срезать углы на пути к просветлению.
  • Как настроить рабочую среду ruby (ror) + vagrant + rubymine @ win7x64?

    @dmz9 Автор вопроса
    негативный опыт тоже опыт.
    мне вот наоборот, например, не нравится идея "поставь это и только это, поменяй всё лишь бы только у тебя хоть что то работало".
    тяжело дропнуть ось с которой работаешь уже больше 10 лет - тут много разных причин среди которых самые основные
    - "забудьте все чему вас учили в виндовс" - отказаться от багажа опыта с виндой и вообще забыть про нее
    - освоение и обучение системе
    - отказ от привычного внешнего вида и любимых программ т.к. аналогов для линукса нет
    - в случае внештатной ситуации например отваливания сетевой карты - решить проблему становится труднее чем на винде - особенно из за наличия приличного багажа опыта именно по винде - помнится около часа было потрачено как то давно на настройку сетевой карты с лайвсиди убунты без интернета. не спорю - заработало - однако сейчас время дороже. понятно что там всего 2 команды было написать - но для этого надо было прочитать и понять довольно внушительный мануал.
    просто для прикола - погугли фотошоп на линукс. в первой же ссылке в сниппете - установим виртуалбокс и винду ))))))))))))
    ну а смысл тогда дропать одну ось ради другой если именно из за этого громадного неудобства и появился инструмент типа виртуалбокса (давным давно) и вагранта - в частности ?
    -------------
    оффтоп конечно, но все же - весь веб - это просто дикая солянка различных стандартов которые друг с другом не совместимы и это бесит. как только соберутся сделать еще один универсальный протокол (ось/приложение/утилиту) - появляется 15 конкурирующих стандартов )))
    -------------
    так что лично для меня вывод - не стоит прогибаться под изменчивый мир, пусть лучше он прогнется под нас )))
  • Как настроить рабочую среду ruby (ror) + vagrant + rubymine @ win7x64?

    @dmz9 Автор вопроса
    кажется это еще более монструозно чем 2/
    образ вырастет на сотни мегабайт, рубимайн сам только 220 весит. ну и на каждый проект отдельный образ делать, в каждом иде устанавливать...