• Есть ли примеры серьезных приложений сделанных на Angular Material?

    @bromzh
    gadzhimari: хз. вообще, все на второй переходят (я тоже). сейчас мало смысла начинать писать на первом.
    а для второго сейчас активно создаются UI-компоненты. например, есть demos.wijmo.com/5/Angular/Explorer/Explorer/#
  • Есть ли примеры серьезных приложений сделанных на Angular Material?

    @bromzh
    gadzhimari: я имею ввиду, что он пока на первом ангуляре.
    Когда material-компоненты для второго ангуляра станут более многочисленнее и стабильнее (или у разрабов будет времени побольше), сайт переведут на второй ангуляр.
  • Angular2. Как в роутере передать параметр в компонент (@Input)?

    @bromzh
    DTX: Да, я тоже так решил делать. В те компоненты, которые вставляются напрямую в код шаблона, данные передаются из родительского через `@Input`. В те компоненты, которые участвуют в роутинге, данные подтягиваются из сервисов.
  • Инджект сервиса в сервис в angular 2?

    @bromzh
    ГЛЕБ ГЛЕБОВ: В самом компоненте необязательно. Но где-то его нужно указать. Либо в компоненте, который выше по иерархии, либо глобально в функции bootstrap.
    Например, если твой сервис UserService зависит от стандартного сервиса Http, то сервис Http (и все его зависимости) так или иначе надо будет зарегать. Разумнее всего сделать это глобально. Стандартные провайдеры обычно группируются в 1 список и экспортируются из пакетов, так что подключить Http и его зависимости просто:
    // main.ts
    import {HTTP_PROVIDERS} from 'angular2/core';
    import {bootstrap} from 'angular2/platform/browser';
    import {App} from './app';
    
    bootstrap(App, [
        ...HTTP_PROVIDERS,
    ]);
    // api.service.ts
    @Injectable
    export class ApiService {
       constructor(private _http: Http) {}
    }
    // app.ts
    @Component({
        selector: 'app',
        providers: [ApiService], // Http не обязательно указывать, так как он указан глобально
        template: `...`,
    })
    export class App {
    }


    Я бы рекомендовал делать так:
    1) Сервисы, которые нужны почти в каждом компоненте (в том числе стандартные, типа тех, которые содержатся в HTTP_PROVIDERS, ROUTER_PROVIDERS) регистрировать глобально.
    2) Сервисы, которые нужны внутри какой-то связанной группы компонентов регистрировать в корневом (для этой группы) компоненте.
    2) Сервисы, которые нужны только в 1-м компоненте регистрировать непосредственно в самом компоненте.
    При этом, надо убедиться, что все зависимые сервисы были зарегистрированы где-то выше по иерархии компонентов.
  • Проблемы с кодировкой python 3. Как быть?

    @bromzh
    Так зачем ему дока по 2-му питону? В третьем очень много чего поменяли в urllib.
  • Angular2 как сделать server side rendering?

    @bromzh
    Ivan Soshnikov: Хотя возможно я неправ. Может быть те URL, что указаны в server.ts всегда будут рендерится предварительно на сервере. Просто эта версия universal-starter немного неправильная - в итоговом html нет клиентского js, хотя должен быть. Тут либо надо взять более старые версии (та версия, где ангуляр версии beta.9 работал нормально), либо подождать нормального примера. Возможно я сам попозже напишу, когда будет время.
  • Angular2 как сделать server side rendering?

    @bromzh
    Ivan Soshnikov: Вроде как только при первой загрузке будет пререндер, а дальнейшие действия уже на клиенте.
    Т.е. для СЕО всё нормально: бот при запросе страницы увидит не просто 1 тег <app></app>, а отрендеренные начальные данные.
  • Как рендерить во view, дожидаясь загрузки данных по ajax в model?

    @bromzh
    Павел: см. тут https://kangax.github.io/compat-table/es6/
    А вообще так: почти все синтаксические штуки использовать можно. Главное, обработать всё предварительно babel'ом. А новая нода умеет многие штуки из es6 нативно. Для сборки всего я рекомендую webpack. Он ещё и круто работает с импортами (в том числе, в стиле es6), так что никаких доп. загрузчиков (типа Systemjs) не понадобится.

    Другие же нововведения стоит использовать с осторожностью. Если неизвестно, какой будет браузер у пользователя, то лучше использовать полифиллы.

    Чтобы ещё точнее узнать, заработает ли твоё приложение, достаточно написать e2e- и unit-тесты и запускать их (например через karma) на разных браузерах и разных версиях этих браузеров.
  • На чем лучше реализовывать таблицы для Angular?

    @bromzh
    ex_coderisimo: нет, всё в принципе нормально. Например, ui-grid очень мощная, но довольно сложная, если нужна очень тонкая настройка. Если хватало datatables, то и ангуляровских решений вполне хватит.
  • Webpack и Local CSS - как подружить?

    @bromzh
    Антон Измайлов: блин, я не понял. Ты requie'ишь css или sass? Ну и ещё раз убедись, что лоадеры стоят правильные. Т.е. для css: test: /\.css$/, loader: 'style!css?sourceMap' (ну и дальше твои лоадеры/конфиги)
    И для SASS: test: /\.scss$/, loader: 'style!css!sass?...'
    Ещё попробуй посмотреть, что сам вебпак выводит. Если мало инфы, посмотри в доках вебпака уровень логирования.
  • Webpack и Local CSS - как подружить?

    @bromzh
    Антон Измайлов: Ну и где тут лоадер для CSS? Ты импортишь файл, оканчивающийся на .css, а лоадер для .scss. Вебпак пока телепатией не обладает, надо всё самому писать.
  • Поясните код Java?

    @bromzh
    Нет, оно вполне defined для языков с управляемой памятью где примитивы иммутабельны (и где присваивание возвращает результат). Мне кажется. это сделано сознательно (и в принципе, очень продуманно), во избежании побочных эффектов. В том же питоне при присвоении идентификатору нового значения, у него меняется id (т.е. адрес). В си же, если объявить переменную, её адрес не будет меняться при присвоении других значений. Т.е. в сях при присвоении берётся адрес и по нему записывается новое значение. В яве при присваивании будет выделен новый адрес и идентификатор будет смотреть на него.
  • Как правильно разбить приложение Angular по файлам?

    @bromzh
    HoHsi: Весьма забавно слышать от человека, который в 2016 до сих пор использует $scope в контроллерах, не знает про поле $inject или ng-annotate, и использует CommonJS вместо es2015 modules, что советы по написанию ангуляр-кода, одобренные лидером разрабов всего ангуляра (а он немного шарит в своей разработке) "ни разу не "лучшая практика"".

    Зачем же тогда вопросы тут задавать, если ты сам знаешь, что советы людей, которые написали множество крупных проектов на ангуляре (а некоторые сами непосредственно разрабатывают ангуляр) далеки от лучших практик.
  • Как настроить require js в gulp и разбить jquery на модули (новичок)?

    @bromzh
    Максим Алёшин: конечно. В новом проекте не стоит использовать require.js. Webpack + babel хорошо справляются. А gulp... Он мне раньше нравился, но потом я попробовал вебпак.
  • Как узнать n-ную цифру десятичного числа?

    @bromzh
    abcd0x00: эта рекурсивная функция лёгким движением руки превращается в цикл. Но пусть это автор проделает сам.
  • На чем написать программу для работы с браузером?

    @bromzh
    он не поддерживает работу с файловой системой, устройствами ввода и не может взять содержимое экрана.

    Неужели ты не знаешь про node.js? Он вполне себе может, и уже давно. Даже биндинги к селениуму есть: webdriver.io
  • Почему angularjs уделяют так много внимания?

    @bromzh
    iCoderXXI: А, ну теперь стало понятнее, спасибо. Меня сбило с толку, что при поиске по слову "ember js" гугл выдаёт ссылки на первую ветку, а гугление по запросу "ember es6 classes" ведёт на открытые issue.
    Да, вроде ветка 2.x получше. Но всё-равно, что-то пока особо не поменялось, хотя следовало бы (hbs, например, так и остался, хотя вроде и пытаются перейти к другому синтаксису).
    Ну а на счёт структуры и скорости включения в работу... Для ангуляра есть styleguide, и если следовать ему, то всё всегда будет понятно. Более того, когда начинаешь с малого, по мере увеличения ты сам приходишь к такой архитектуре. Но, с другой стороны, бывают случаи, когда лучше написать по-другому. И хорошо, что ангуляр даёт некую свободу.
  • Как пишутся Single page application из модулей?

    @bromzh
    Alexandr Rqnix: Ну во-первых, вебпак умеет импортировать requirejs-модули. Так что нет никаких проблем начать писать новое приложение с вебпаком, используя чьи-то AMD-модули.
    Ну а инициализация выполняется так: вебпак смотрит на точки входа в конфиге . Далее, указываюся его зависимости: это один main.js (указан его относительный путь) + модули, доступные с dev-сервера (нужны, чтобы делать hot-redeploy). В main.js идёт инициализация твоего приложения. До кучи, в этот же файл подключаются стили. Вебпак сам разберётся что и куда вставить.
    Весь бандл компилится в файл с именем bundle.js, который будет в папке /assets.
    Ну а в главном файле index.html он явно вставляется.

    Вообще, в сети есть куча туториалов и примеров конфига для вебпака. позволяющие настроить дев- и прод-окружения правильно.

    Если же не хочется брать вебпак, то можно просто использовать es6-модули и babel для компиляции в es5. В этом случае достаточно просто подключить скомпиленый файл в index.html.
    Можно вообще обойтись без babel, а использовать полифиллы и подключать es6-файлы напрямую (но так лучше делать только в дев-режиме).
  • Почему angularjs уделяют так много внимания?

    @bromzh
    Все крупные/популярные решения поняли, что лучше использовать единый стиль view, а именно - html. Реакт - тоже по-сути HTML. И ангуляр. Веб-компоненты (за которыми будущее) - это HTML+кастомные теги (т.е. все его реализации используют html-разметку).
    А эмбер до сих пор использует шаблонизатор с не-HTML синтаксисом. Т.е. при написании компонента мне приходится заранее думать - вставить обычный input-тег, или вставить {{input ... }}. Зачем?

    Далее, все фреймворки нынче стараются по-максимуму использовать свежие стандарты ES2015: классы, импорты и т.д. Контроллеры ангуляра - это просто класс. Компонент реакта - класс, расширяющий React.Component. А в эмбере до сих пор const Router = Ember.Router.extend. Доколе?

    Ну и явное всяко лучше неявного. Вся эта магия и "convention over configuration" - зло. Лучше иметь возможность самому выбирать структуру проекта и явно подключать те или иные модули, чем быть жёстко ограниченным самим фреймворком.

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

    @bromzh
    drtvader: Так поменяй местами их в самой вёрстке. В документации же прямым текстом написано: "Column ordering". Колонки и строки - немного разные вещи как бы.
    Упорядочивание по всем направлениям есть во flexbox, если разметку лень менять.