• Как сделать директиву?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    то контроллер наследуется и я в результате "соберу" форму?

    он не наследуется, вы просто получаете доступ к контроллеру директивы, от которой зависит ваша.

    Как, в случае с директивой, поступать с ui-router, можно ли куда то засунуть stateProvider

    uiRouter должен остаться снаружи. Вы можете добавить колбэк у директивы, который будет вызываться по переходу между скринами, а там уже менять состояние у ui router. Или еще как. Но uiRouter и все что связано с навигацией между состояниями должно остаться снаружи.

    Наследуется ли контроллер (link) в директиве, чтобы не терялась форма?

    link это не контроллер, link это link. И нет, и контроллер и link будут уничтожены при разрушении скоупа (или при удалении элемента).

    Храните данные в сервисе.
    Ответ написан
    Комментировать
  • Какой тип ЧПУ будет предпочтительнее для русскоязычного сайта?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Если у вас аккуратные англоязычные ЧПУ/транслит - устраивать переход на кириллический вариант не считаю правильным.

    Вообще, если у вас кириллический домен - смысл использования кириллицы в урл есть, а если домен с латинскими символами, то смешивать в URL кириллицу с латиницей я бы не стал.

    Хотите выделение URL в выдаче - лучше сделайте правильный транслит в ЧПУ.
    Ответ написан
    Комментировать
  • Как обработать index.html?

    Указываем путь к статическим ресурсам через express.static, к примеру корень проекта
    app.set('views', 'app');
    app.engine('html', require('ejs').renderFile);
    app.set('view engine', 'html'); 
    
    app.use(express.static(__dirname + '/')); <-- this

    Подключаем ресурсы
    <link href="/app/core/client/css/core.css" rel="stylesheet" type="text/css">
    <link href="/app/ehr/client/css/ehr.css" rel="stylesheet" type="text/css">
    
    <script src="/bower_components/angular/angular.js"></script>
    <script src="/bower_components/angular-loader/angular-loader.js"></script>
    Ответ написан
    3 комментария
  • Как лучше организовать локальные настройки в angular-проекте?

    Есть такая штука yeoman.io/generators и собственно сам генератор https://github.com/DaftMonk/generator-angular-fullstack
    Очень мне нравится организованная структура и использование команды grunt

    Запустится dev проект, с дебагами и прочими плюшками.
    grunt serve

    Запустит production
    grunt serve:dist

    Для добавления новых модулей достаточно использовать команды:
    bower install --save module-name
    npm install --save module-name

    При запуске эти модули инджектятся в файл index.html а в production версию все файлы минифицируются.

    Настройки хранятся в таком виде:
    ./server/config/environment/development.js - dev версия
    ./server/config/environment/production.js - prod версия
    ./server/config/environment/index.js - общие

    Из доков по герератору
    Server Side
    • angular-fullstack:endpoint


    Client Side
    • angular-fullstack:route
    • angular-fullstack:controller
    • angular-fullstack:filter
    • angular-fullstack:directive
    • angular-fullstack:service
    • angular-fullstack:provider
    • angular-fullstack:factory
    • angular-fullstack:decorator


    Deployment
    • angular-fullstack:openshift
    • angular-fullstack:heroku


    Пример:
    $ yo angular-fullstack:endpoint post
    [?] What will the url of your endpoint to be? /api/posts
    Ответ написан
    2 комментария
  • А не объясните еще раз про MEAN?

    scapp
    @scapp
    JS фрилансер
    Если хотите cascade update надо было выбирать реляционную базу данных.
    По поводу вопроса №2 - используйте константы.
    Ответ написан
    1 комментарий
  • А не объясните еще раз про MEAN?

    baskerville42
    @baskerville42
    Учусь работать (Junior)
    Если я правильно понял то что вам нужно, то вы бы взяли библиотеку angular-translate и просто отдельно бы хранили переводы, не меняя значения всех слов во всех коллекциях. А то уж сильно замороченно выходит.
    Ответ написан
    2 комментария
  • Правильно ли я понимаю декоратор?

    AMar4enko
    @AMar4enko
    Да, в этом случае вполне уместно.
    Ответ написан
    Комментировать
  • Как правильно вывести $scope?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    правильнее убрать это из шаблона и разруливать на уровне сервисов или хотя бы в контроллере. Ну а так...

    {{vm[CurrentLanguage]}}
    Ответ написан
    2 комментария
  • А не поможете с CSS и flexbox?

    .language-switcher .dropdown {
       margin-top: 0;
    }
    Ответ написан
    Комментировать
  • Как найти баг кроссбраузерности(Скрипты работают только в Chrome-like браузерах)?

    mlnkv
    @mlnkv
    JavaScript Developer
    страница жутко открывается в IE, Smart-TV итд.

    Что значит жутко?
    жутко плохо?
    жутко долго?
    жутко не так, как надо?
    Ответ написан
    Комментировать
  • А не поможете разобраться с $resource и серверным ответом?

    mr_T
    @mr_T
    Web-разработчик
    Если имел место редирект (а он тут почти наверняка был), то можно посмотреть в панели разработчика все запросы, которые отправлял браузер, в частности запрос, который получил в ответ команду на редирект.
    А так - 500 ошибка где-то в приложении отправляется вручную скорее всего, так что нужно сначала выяснить, где конкретно. Скорее всего какой-то middleware типа bodyparser'а не сумел обработать запрос. А вообще странно, что был именно редирект на /server-error. По-хорошему ошибку нужно выдавать не на редиректе, а непосредственно на странице, на которой она произошла. Ну и еще в консоль приложения загляни, там может тоже что-то полезное есть.
    Ответ написан
    Комментировать
  • А не поможете разобраться с $resource и серверным ответом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    скорее всего сервер редеректнул вас на server-error, и запрос по редиректу шел уже по GET
    Ответ написан
    1 комментарий
  • Как протестировать функционал используя Mocha?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Посмотрите, как сделано в тестах node-express-mongoose-demo. Там, правда, скорее интеграционные тесты, а не юнит, но смысл тот же и проверяется примерно то же самое.
    Ответ написан
    2 комментария
  • Кем можно работать, учась на программиста?

    disc
    @disc
    веб-разработчик
    Работайте тем - кем хочется Вам. Если решать за вас, попадете на те же грабли второй раз.
    Ответ написан
    Комментировать
  • Всё таки, как работать с мультиязычностью?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Лучше все языковые версии хранить в одном месте, или все на диске или все в базе. Если уж нужно в двух и более местах, если эти шаблоны прямо уж так сильно меняются, то лучше базу принять за основное место и синхронизировать на диск при изменениях или по запросу. Вы же можете генерировать эти json файлы когда захотите. Как хранить в базе есть два варианта, или внутри одного документа/объекта много языковых версий или рядом, добавляя индексируемый ключ. Это зависит от того, какие данные и какие к ним типичные запросы приходят, если данных мало и запросы редкие, то разницы нет. Например, если там 10 форм и у каждой 5 языков, а формы меняются 1 раз в неделю, то удобнее хранить все языки в формах и при изменении перегенерировать JSON на диске. А если это user-generated контент, который нужно постоянно отдавать прямо из базы, то выносите идентификатор языка в ключ с индексом, так запросы будут быстрее. А при большой нагрузке лучше кешировать языковые версии прямо в оперативной памяти на сервере, чтобы быстрее отдавать и реже ходить к базе за ними.
    Ответ написан
    2 комментария
  • Как отсортировать массив с добавлением разделителей групп?

    qfox
    @qfox
    Ответы есть у меня
    Толи я не понимаю, толи это ответ:
    // сортируем
    var sorted = $scope.dis.sort(function (a, b) {
      return a.name > b.name? 1 :  -1;
    });
    // собираем сам массив
    var sortedWithGroups = sorted.reduce(function (res, a) {
      // добавляем дополнительно букву перед первым словом на новую букву
      // если это первое слово на эту букву
      if (res.lastGroup !== a.name[0]) {
        res.lastGroup = a.name[0];
        res.push({name: a.name[0], group: true});
      }
      // добавляем саму ссылку
      res.push(a);
      return res;
    }, []);

    В итоге в sortedWithGroups отсортированный массив с группировкой по буквам.

    p.s. Разделил на переменные только ради комментариев. Все это можно собрать в несколько строк и вызывать reduce сразу после sort в одной конструкции.

    Ссылки:
    Array.prototype.sort: https://developer.mozilla.org/en-US/docs/Web/JavaS...
    Array.prototype.reduce: https://developer.mozilla.org/en-US/docs/Web/JavaS...
    Ответ написан
    8 комментариев
  • Как отсортировать массив с добавлением разделителей групп?

    standy
    @standy
    Алгоритм такой:
    1. Отсортировать всё по алфавиту.
    2. Выводить слова в цикле, при этом выводить букву-заголовок только если она не совпадает с первой буквой прошлого слова.
    Ответ написан
    2 комментария
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    kumaxim
    @kumaxim
    Web-программист
    "Рейтинг сложности" мне кажется бредом. Я начал программировать 11 лет назад, окончил ВУЗ по ИТ-специальности, участвовал в паре hightload проектах...

    Я считаю что сложность вопроса - вещь весьма относительная. Допустим для меня любые вопросы про начало своего дела являются элементарными, я на них могу без проблем ответить в 3 часа ночи, если меня разбудят. А являются они таковыми для меня, т.к. у меня было 6 проваленных проектов, на которых я набил себе огромную кучу шишек(и как разработчик, и как руководитель/основатель).

    Однако, для человека, который создает вопрос типа "Откуда взять трафик" или "Как оптимизировать сайт" вряд ли за плечами имеет мой опыт. Да и откуда он возьмет его?! Я сам раньше таким был, отсюда и все мои шишки... Я не считаю правильным посылать нафиг новичков, только потому что они новички. Пройдет пару лет, эти ребята набьют свои шишки, получат свой опыт и станут нормальными специалистами.

    Возвращаясь к вопросу что делать с таким вопросом сейчас.
    Давайте возьмем какой-нибудь тег, например Laravel. Пусть в теге 300 вопросов, 11 тыс. лайков и 2 тыс. человек, которые участвуют в его обсуждении. Давайте будем считать, что если у одного человека, есть, допустим, 10% лайков по всем вопросам данного тега, то он специалист в этом вопросе. Я думаю логично - лайки к ответам ставит сообщество, значит сообщество считает его полезным. От суда получается, что первая переменная - количество лайков в теге у конкретного человека сообщества.

    Идем далее. Вопросы могут создавать любые люди. Однако, эти люди могут быть как новыми, так и авторитетными членами сообщества. Далее давайте подумаем, новые члены сообщества у нас как раз задают тупые вопросы, следовательно они не заслуживают внимание экспертов. Отсюда имеем вторую переменную - количество лайков в теге у вопрошающего.

    Отсюда можно сделать предположение: чем больше у человека лайков в теге, тем большим специалистом он является. Следовательно, ничего не мешает ввести систему рейтинга, вида
    1. до 100 лайков - новичок
    2. от 101 до 500 - опытный пользователь
    3. от 501 до 1000 - профессионал
    4. от 1001 - эксперт


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

    Этим решением мы достигаем:
    1)Если Вы эксперт в определенном вопросе(вяжем на тег), предложенным мною образом Вы можете отсечь вопросы второго сорта
    2)Если Вы не эксперт в этом вопросе, скорей всего Вы не сможете отделить вопросы второго сорта, от интересных вопросов, а значит раздражения у Вас они не вызовут.

    Как развитие идеи можно добавить какой-нибудь тест на знание вопроса, дающей +50 лайков, для более быстрого подъема по "лестнице".

    Я беру за основу лайки, но по идеи можно еще добавить сюда количество просмотров вопроса, количество ответов в нем, количество лайков в других ответах... Вообщем алгоритм можно дорабатывать бесконечно....
    Ответ написан
    4 комментария
  • Сколько вариантов дизайна сайта вы делаете?

    nikitanaz
    @nikitanaz
    UX Lead and DesignOps @EPAM
    Один.
    Рассказываю почему — прежде, чем нарисовать что-то в фотошопе, надо выяснить много всего, пройти несколько этапов, а именно:
    1. Аналитика — что за фирма, узнать чем живёт, как продаёт, что продаёт и пр.;
    2. Прототипирование — хоть на салфетке, но накидать примерную структуру будущего сайта. В идеале интерактивный прототип, если есть сложные формы и под подпись с утверждением;
    3. Только сейчас поднимаем тему о цветах и прочей лабуде — показываем примеры, разговариваем много и долго о будущем оформлении, выясняем чем руководствуется человек и как ему помочь в выборе;
    4. Рисуем концепт — мы уже не летаем в облаках, а рисуем обговоренный макет (трачу на это не более 7-8 часов);
    5. Вносим поправки и дорабатываем детали главной страницы (20+ часов на это закладываю);
    6. Рисуем внутренние (20+ часов).

    Не надо гадать что понравится, выясните что нужно. Говорите, обсуждайте, зачем эти игры в напёрстки?
    Доступно донёс?)
    Ответ написан
    Комментировать