• Какой порядок инициализации в AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мммм... все инициализируется on demand и асинхронно. То есть сервисы инициализируются по требованию, если вы иньектите их в контроллеры то естественно они инициализируются раньше контроллера (так как это их зависимости). Фильтры инициализируются после компиляции шаблона, и только те что там используются.

    run запускается первым, перед run еще есть фаза конфигурации.

    С учетом всех сложностей вы просто не должны завязывать приложение на это все дело (и это хорошая идея). У вас есть фаза конфигурации где можно еще что-то сделать с контейнером зависимостей например, сконфигурить сервисы, и потом все... только run выполняется первым (причем если он требует сервисы сначала инициализируются они) потом представьте что вы не знаете порядок и т.д.
    Ответ написан
    Комментировать
  • Как правильно верстать некоторые вещи?

    unclechu
    @unclechu
    1. Всегда px;
    2. По идее нужно использовать line-height, но когда столкнулся с багом фичей отрисовски шрифтов на яблооси (ни на одной другой ОСи это не повторялось, шрифт смещён относительно центра), то стал использовать box-sizing: border-box; и выравнивание через padding-top;
    3. В фуррифоксе-то как раз со шрифтами всё хорошо, а вот хромоногий и его производные имеют с этим проблемы на шindows-ах, многие light-версии шрифтов в относительно небольшом кегле превращаются вообще не пойми во что, контуры частично исчезают. Делаю .otf, .woff, .svg (для старых IE .eot), вот пример с less миксином объявления шрифтов:

      @revision: 4;
      @tplPath: '/';
      @fontsPrefix: '@{tplPath}fonts/';

      .font-face(@fontname, @fontfile, @fontweight:normal, @fontstyle:normal) {
      font-family: "@{fontname}";
      src: url("@{fontsPrefix}@{fontfile}.eot?v=@{revision}");
      src: url("@{fontsPrefix}@{fontfile}.eot?v=@{revision}#iefix") format("embedded-opentype"),
      url("@{fontsPrefix}@{fontfile}.woff?v=@{revision}") format("woff"),
      url("@{fontsPrefix}@{fontfile}.otf?v=@{revision}") format("opentype"),
      url("@{fontsPrefix}@{fontfile}.svg?v=@{revision}#@{fontfile}") format("svg");
      font-weight: @fontweight;
      font-style: @fontstyle;
      }

      @font-face { .font-face('Roboto', 'Roboto-Regular'); }
      @font-face { .font-face('Roboto', 'Roboto-Bold', bold); }
      @font-face { .font-face('Roboto-Light', 'Roboto-Light'); }
      @font-face { .font-face('Roboto-Medium', 'Roboto-Medium'); }
      @font-face { .font-face('Roboto-Thin', 'Roboto-Thin'); }
      @font-face { .font-face('Roboto Condensed', 'RobotoCondensed-Regular'); }
      ;
    4. Чтобы скролл не появлялся, — для родительского элемента ставится overflow: hidden;
    5. Используйте Modernizr, делайте изначально бордюр через outline, а при наличии поддержки теней (html.boxshadow ...) убирайте outline и делайте нормальный box-shadow, а в Safari пусть правят баги, это не ваша проблема;
    6. Возможно у вас JPEG, если дизайнер присылает рендеры не в PNG (или другом lossless), — бейте током;
    7. От спрайтов отказался в пользу SVG файлов, все элементы сайта, как правило — векторные, в условиях торжества мобильных платформ, — использовать для этого растр — неразумно, в редких случаях PNG (когда это имеет какой-то смысл или безисходность), JPEG только для фотографий;
    Ответ написан
    Комментировать